laravel迁移不起作用

时间:2017-08-13 07:12:30

标签: laravel migration

enter image description here我以前创建过用户表。现在我创建了一个新的迁移来在我的模式中创建一个新的books表。当我尝试运行命令

php artisan migrate 它告诉我:

  

[照亮\数据库\ QueryException]       SQLSTATE [42S01]:基表或视图已存在:1050表'用户'alre       ady exists(SQL:create table usersid int unsigned not null auto_incr       ement主键,username varchar(255)not null,email varchar(255)n       ot null,password varchar(255)not null,created_at timestamp default 0       not null,updated_at timestamp default 0 not null)默认字符集       utf8 collat​​e utf8_unicode_ci)

我的问题与2相同,我运行的代码也一样。 所以,我已经尝试了这里建议的所有解决方案。但是他们不适合我。由于我无法对帖子发表评论,我必须将其作为一个新问题发布。希望你能实现我的关注并帮助我

3 个答案:

答案 0 :(得分:3)

谢谢你的结果!

在这种情况下,您可以删除所有表格,然后重做php artisan migrate

如果您不想这样做,您可以插入已经创建的迁移文件名记录到migrations表,然后运行php artisan migrate

在这种情况下,您不需要删除表格。

例如,您似乎创建了users表,因此请插入migration2014_10_12_000000_create_users_table的记录,如下所示。

enter image description here

然后,当您运行php artisan migrate:status时,您将得到如下结果。

enter image description here

如果是这种情况,如果您运行php artisan migratemigration文件将会执行2014_10_12_200000_create_password_resets_table

这样,你应该插入已经创建的migration文件名的记录,然后运行php artisan migrate,它会运行良好!

<强> P.S。

正如@mschuett在Laravel Migration table already exists but i want to add new not the older中所说,你的migrations表格搞砸了。

因为您的数据库中有users表,但未执行2014_10_12_00000_create_users_table的迁移。

如果有多个迁移文件,如果您运行它并在某处失败,则migration状态已Y到您运行的位置。

答案 1 :(得分:2)

如屏幕截图所示,您的所有迁移都没有实际运行。您必须手动创建users表,或者您确实运行了迁移,但它以某种方式搞砸了。

如果您不介意丢失表格中的任何数据,最简单的解决方法是(您将丢失表格中的所有数据!):

php artisan migrate:refresh

将回滚所有迁移,然后重新运行它们。

More info in the docs

答案 2 :(得分:1)

php artisan migrate:refresh将删除所有数据并重新创建表格,而migrate只会创建尚未存在的表格。

如果只刷新一些表,(如果迁移不起作用),帮助我删除迁移表中的那些表和表行,并进一步成功执行php artisan migrate。 (但仅在4.2上尝试过,但它也适用于上层版本)