在Laravel中,似乎有一个创建迁移的命令,但没有删除的命令。
创建迁移命令:
php artisan migrate:make create_users_table
如果我想删除迁移,我是否可以安全地删除database/migrations文件夹中相应的迁移文件?
迁移文件:
2013_05_31_220658_create_users_table
在Laravel中,似乎有一个创建迁移的命令,但没有删除的命令。
创建迁移命令:
php artisan migrate:make create_users_table
如果我想删除迁移,我是否可以安全地删除database/migrations文件夹中相应的迁移文件?
迁移文件:
2013_05_31_220658_create_users_table
当前回答
您可能还需要从迁移表中删除该条目。
其他回答
这对我来说很管用:
我删除了数据库中的所有表,主要是migrations表。 PHP工匠迁移:刷新
在laravel 5.5.43
我不小心创建了一个坏名字的迁移(命令:php artisan migrate:make)。我没有运行(php artisan migrate)迁移,所以我决定删除它。 我的步骤:
手动删除app/database/migrations/my_migration_file_name.php下的迁移文件 重置composer自动加载文件:composer dump-autoload 放松
如果你运行迁移(php artisan migrate),你可以这样做:
a)运行migrate:rollback -这是撤销上次迁移的正确方法(Thnx @Jakobud)
b)如果migrate:rollback不起作用,手动执行(我记得在以前的版本中migrate:rollback有bug):
手动删除app/database/migrations/my_migration_file_name.php下的迁移文件 重置composer自动加载文件:composer dump-autoload 修改数据库:从迁移表中删除最后一个条目
您可能还需要从迁移表中删除该条目。
我同意目前的答案,我只是想补充一点信息。
Laravel 5.3及以上版本添加了一个新功能,可以让你退出单个迁移:
php artisan migrate:rollback --step=1
手动删除database/migrations/my_migration_file_name.php下的迁移文件
当您运行迁移时,这是一个很好的特性
这样,只需2步就可以安全地去除laravel中的迁移
我不小心创建了两次create_users_table。它重写了一些类,并将回滚转换为errorrexception。
您需要做的是在vendor/composer文件夹中找到autoload_classmap.php,并查找特定的代码行,例如
'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',
然后编辑path。那么回滚应该没问题。