当我发出命令" php artisan migrate
"它给了我错误:
base table or view already exists: 1050 table 'users' already exists.
并没有更新我的数据库表。我回滚并再次迁移它,但对DB没有任何影响,我创建了新项目,但它也给出了这个命令的错误。
答案 0 :(得分:0)
在您的迁移中首先进行此检查
Schema::hasTable('users');
如果您没有数据,可以先手动删除列。
答案 1 :(得分:0)
我认为您的迁移是在DB中创建表users
。此错误仅表示此类数据库中的表users already exits
,因此无法创建。
您实际可以做的是创建一个新的空数据库,或者重新创建整个数据库,以防您丢失数据,我从您的帖子中假设。
回滚仅撤消上次迁移步骤。你可能会跑:
$ php artisan migrate:rollback --step=2 # rollback two last migrations
或
$ php artisan migrate:reset # rollback all migrations
我建议您浏览Database: Migrations,这样您就可以获得有关数据库迁移的更多知识。
答案 2 :(得分:0)
由于您运行了迁移,因此在数据库的migrations
表中引用了迁移迁移。您需要手动删除该记录,以便再次运行相同的迁移。
migration
表跟踪您运行的迁移。在迁移实际发生之前,Laravel将记录写入migration
表。
如果发生错误,迁移将失败,但存在引用记录。因此错误
基本表或视图已存在:1050表'用户'已经存在。
解决此问题的最简单方法是,修复迁移文件的问题,从迁移表中删除引用记录并再次运行迁移。
答案 3 :(得分:0)
请按照以下步骤操作:
首先检查您当前的迁移状态
php artisan migrate:status
跳过已导入的表并查找新的迁移文件,并从新的迁移文件中删除create语句。
这里的问题是你的新迁移文件可能包含create语句而不是alter / drop等。
一旦修复该语句,请尝试运行
php artisan migrate