Glo*_*alz 186 php database laravel artisan-migrate
在Laravel中,似乎有一个创建迁移的命令,但不是删除.
创建迁移命令:
php artisan migrate:make create_users_table
Run Code Online (Sandbox Code Playgroud)
如果我想删除迁移,我可以安全地删除database/migrations文件夹中的相应迁移文件吗?
迁移文件:
2013_05_31_220658_create_users_table
Run Code Online (Sandbox Code Playgroud)
mal*_*kan 343
我不小心创建了一个名字不好的迁移(命令:) php artisan migrate:make.我没有运行(php artisan migrate)迁移,所以我决定删除它.我的步骤:
app/database/migrations/my_migration_file_name.phpcomposer dump-autoload如果您确实运行了migration(php artisan migrate),则可以执行以下操作:
a)运行migrate:rollback- 这是撤消上次迁移的正确方法(Thnx @Jakobud)
b)如果migrate:rollback不起作用,请手动执行(我记得迁移的bug:以前版本中的回滚):
app/database/migrations/my_migration_file_name.phpcomposer dump-autoloadJas*_*wis 64
如果已运行迁移(读取:已迁移),则应回滚迁移以从数据库表中清除历史记录.回滚后,您应该能够安全地删除迁移文件,然后再继续迁移.
我不小心创建了两次create_users_table.它覆盖了一些类并将回滚转换为ErrorException.
您需要做的是在vendor/composer文件夹中找到autoload_classmap.php并查找特定的代码行,例如
'CreateUsersTable' => $baseDir . '/app/database/migrations/2013_07_04_014051_create_users_table.php',
Run Code Online (Sandbox Code Playgroud)
并编辑路径.然后你的回滚应该没问题.
php artisan migrate:fresh
Run Code Online (Sandbox Code Playgroud)
如果您正在开发中并且期望的结果是从头开始,则应该完成这项工作。
在生产中,这可能不是您想要的,所以您应该被广告吸引。(migrate:fresh命令将从数据库中删除所有表,然后执行migrate命令)。
我宁愿手动完成
...database/migrations从文件夹中删除迁移php artisan migrate,请登录您的 phpmyadmin 或 SQL(无论哪种情况)并在数据库中删除由迁移创建的表对我有用,希望有帮助!
我同意当前的答案,我只想添加更多信息。
Laravel 5.3 及以上版本添加了一项新功能,允许您取消单个迁移:
php artisan migrate:rollback --step=1
Run Code Online (Sandbox Code Playgroud)
之后,手动删除下的迁移文件 database/migrations/my_migration_file_name.php
当您运行迁移时,这是一个很棒的功能
这样,你就可以安全的删除laravel中的迁移,只需要2步