在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的艺术家迁移 )的迁移,所以我决定删除它。 我的步骤:

  1. 手动删除app / database / migrations / my_migration_file_name.php下的迁移文件
  2. 重置composer php自动载入文件: composer dump-autoload
  3. 放松

如果你确实运行了迁移( php artisan migrate ),你可以这样做:

a)运行migrate:rollback – 这是撤消上一次迁移的正确方法(Thnx @Jakobud)

b)如果migrate:rollback不起作用,手动(我记得以前版本的迁移:回滚的错误):

  1. 手动删除app / database / migrations / my_migration_file_name.php下的迁移文件
  2. 重置composer php自动载入文件: composer dump-autoload
  3. 修改您的数据库:从迁移表中删除最后一个条目

如果迁移已经运行(读取:迁移),那么您应该回滚您的迁移以清除数据库表中的历史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