Answers:
我无意中创建了一个名字错误的迁移(命令:)php artisan migrate:make
。我没有运行(php artisan migrate
)迁移,因此决定将其删除。我的步骤:
app/database/migrations/my_migration_file_name.php
composer dump-autoload
如果您确实运行了迁移(php artisan migrate
),则可以执行以下操作:
a)运行migrate:rollback
-这是撤消上一次迁移的正确方法(Thnx @Jakobud)
b)如果migrate:rollback
不起作用,请手动执行(我记得以前版本中的migration:rollback的错误):
app/database/migrations/my_migration_file_name.php
composer dump-autoload
migrate:rollback
以回滚迁移,然后删除迁移文件并转储自动加载。无需修改数据库或迁移表。
如果迁移已经运行(读取:已迁移),则应回滚迁移以从数据库表中清除历史记录。回滚后,您应该可以安全地删除迁移文件,然后再次进行迁移。
php artisan migrate:fresh
如果您正在开发中,并且期望的结果是从头开始,则应该完成这项工作。
在生产中,这可能不是您想要的东西,因此您应该被广告吸引。(migrate:fresh命令将从数据库中删除所有表,然后执行migrate命令)。
我不小心创建了两次create_users_table。它重写了一些类,并将回滚转换为ErrorException。
您需要做的是在vendor / composer文件夹中找到autoload_classmap.php并查找特定的代码行,例如
'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',
并编辑路径。然后您的回滚应该很好。
我同意当前的答案,我只想补充一点点信息。
Laravel 5.3及更高版本中已添加了一项新功能,使您可以撤消单个迁移:
php artisan migrate:rollback --step=1
之后,手动删除下的迁移文件 database/migrations/my_migration_file_name.php
这是运行迁移时的一项很棒的功能
这样,您只需两步即可安全地删除laravel中的迁移