Laravel 5.4 迁移错误 [42501]

Posted

技术标签:

【中文标题】Laravel 5.4 迁移错误 [42501]【英文标题】:Laravel 5.4 migration error [42501] 【发布时间】:2017-07-26 19:50:14 【问题描述】:

我可以创建迁移。它工作正常,但是当我执行 php artisan migrate 时,它​​说

[照亮\数据库\查询异常]

SQLSTATE[42S01]:基表或视图已存在:1050 表“用户”已存在(SQL:创建表 users (id int unsigned not null auto_increment 主键,name varchar(255) not null, email varchar(255) not null, password varchar(255) not null, remember_token varchar(100) null, created_at timestamp null, updated_at timestamp null) 默认字符集 utf8 collat​​e utf8_unicode_ci)

[PDO异常]

SQLSTATE[42S01]:基表或视图已存在:1050 表“用户”已存在

我检查了我的database.php 文件,它工作正常,并且已经将默认用户表也迁移到了我的 php my admin mysql

【问题讨论】:

如果您已经迁移了 users 表,请进入 users 迁移文件并注释 up 函数中的所有内容。请务必在迁移后取消注释所有内容。 但这次我没有迁移用户表我正在迁移不起作用的 POST 表,我可以创建更多不同名称的迁移,但是当我尝试迁移时它给了我这个错误,我不知道为什么 由于某种原因,它没有看到您已经迁移了该文件。也许它没有在迁移中列出,或者你做了一个部分失败的migrate:rollback,但仍然从迁移表中删除了行。暂时评论它有助于迁移表保持最新。 我之前看到过这个问题,你可以查看这个链接***.com/questions/48270874/… 【参考方案1】:

从软件(phpmyadmin)中删除所有表,然后再次迁移,这将迁移新创建的表,这不是一个正确的解决方案,但这在学习级别上有效,问候

【讨论】:

【参考方案2】:

最简单的修复方法是:php artisan migrate:refresh

⚠️ 您将丢失表格中的所有数据! ⚠️

More info in the docs.

【讨论】:

【参考方案3】:

您可以在UsersTableSeeder中使用这句话来重新生成表格:

DB::table('users')->truncate();

【讨论】:

以上是关于Laravel 5.4 迁移错误 [42501]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4数据库迁移不起作用[重复]

laravel 5.4 迁移无法正常工作

Laravel 5.4 迁移 ENUM 在 MySQL 中失败

php artisan migrate 不适用于 Laravel 5.4 中的 XAMPP

laravel 5.4 迁移问题

使用迁移 Laravel 5.4 更新列