我以前创建过用户表。现在我创建了一个新的迁移来在我的模式中创建一个新的books表。当我尝试运行命令
php artisan migrate 它告诉我:
[照亮\数据库\ QueryException] SQLSTATE [42S01]:基表或视图已存在:1050表'用户'alre ady exists(SQL:create table
users
(id
int unsigned not null auto_incr ement主键,username
varchar(255)not null,password
varchar(255)not null,created_at
timestamp default 0 not null,updated_at
timestamp default 0 not null)默认字符集 utf8 collate utf8_unicode_ci)
我的问题与2相同,我运行的代码也一样。 所以,我已经尝试了这里建议的所有解决方案。但是他们不适合我。由于我无法对帖子发表评论,我必须将其作为一个新问题发布。希望你能实现我的关注并帮助我
答案 0 :(得分:3)
谢谢你的结果!
在这种情况下,您可以删除所有表格,然后重做php artisan migrate
。
如果您不想这样做,您可以插入已经创建的迁移文件名记录到migrations
表,然后运行php artisan migrate
。
在这种情况下,您不需要删除表格。
例如,您似乎创建了users
表,因此请插入migration
为2014_10_12_000000_create_users_table
的记录,如下所示。
然后,当您运行php artisan migrate:status
时,您将得到如下结果。
如果是这种情况,如果您运行php artisan migrate
,migration
文件将会执行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
将回滚所有迁移,然后重新运行它们。
答案 2 :(得分:1)
php artisan migrate:refresh
将删除所有数据并重新创建表格,而migrate
只会创建尚未存在的表格。
如果只刷新一些表,(如果迁移不起作用),帮助我删除迁移表中的那些表和表行,并进一步成功执行php artisan migrate
。
(但仅在4.2上尝试过,但它也适用于上层版本)