在Laravel安全地移除迁移
在Laravel,似乎有一个创build迁移的命令,但不能删除。
创build迁移命令:
php artisan migrate:make create_users_table
如果我想删除迁移,我可以安全地删除数据库/ migrations文件夹中相应的迁移文件吗?
迁移文件:
2013_05_31_220658_create_users_table
我不小心创build了一个名字不好的迁移(命令: php artisan migrate:make )。 我没有运行 ( PHP的艺术家迁移 )的迁移,所以我决定删除它。 我的步骤:
- 手动删除app / database / migrations / my_migration_file_name.php下的迁移文件
- 重置composer php自动载入文件: composer dump-autoload
- 放松
如果你确实运行了迁移( php artisan migrate ),你可以这样做:
a)运行migrate:rollback
– 这是撤消上一次迁移的正确方法(Thnx @Jakobud)
b)如果migrate:rollback
不起作用,手动(我记得以前版本的迁移:回滚的错误):
- 手动删除app / database / migrations / my_migration_file_name.php下的迁移文件
- 重置composer php自动载入文件: composer dump-autoload
- 修改您的数据库:从迁移表中删除最后一个条目
如果迁移已经运行(读取:迁移),那么您应该回滚您的迁移以清除数据库表中的历史logging。 一旦你回滚,你应该能够安全地删除你的迁移文件,然后再继续迁移。
您可能还需要从迁移表中删除条目。
我无意中创build了两次create_users_table。 它重写了一些类并将回滚转换为ErrorException。
你需要做的是find供应商/composer php文件夹中的autoload_classmap.php,并寻找特定的代码行,如
'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',
并编辑path。 那么你的回滚应该没问题。
试试这个:
php artisan optimize