在 Laravel 6 的模块中,数据库迁移的回滚(提示:Migration not found)与重新迁移

1、发现 Git 库中,数据库迁移文件,有了一些变更,如:字段 mine_type 修改为 mime_type。如图1

图1

2、2 个数据库迁移文件,恰好在最后一次迁移中。如图2

图2

3、回滚迁移,如果要回滚最后一次迁移操作,可以使用 Artisan 命令 rollback。该命令会回滚最后「一批」的迁移,这可能包含多个迁移文件,提示:Migration not found。如图3

图3

PS E:\wwwroot\object> php artisan migrate:rollback
Migration not found: 2021_12_13_145303_create_theme_asset_version_table
Migration not found: 2021_12_06_133918_create_theme_asset_table
PS E:\wwwroot\object>

4、原因应该在于此 2 个迁移文件,是放在模块中的,其路径为:/Modules/ThemeStore/Database/Migrations,在默认路径:/database/migrations 下不存在。

5、模块的实现基于:nwidart/laravel-modules,执行 module:migrate-rollback 命令。执行成功,如图4

图4

PS E:\wwwroot\object> php artisan module:migrate-rollback ThemeStore
Rollback: 2021_12_13_145303_create_theme_asset_version_table
Rollback: 2021_12_06_133918_create_theme_asset_table
PS E:\wwwroot\object> php artisan module:migrate ThemeStore
Migrating: 2021_12_06_133918_create_theme_asset_table
Migrated:  2021_12_06_133918_create_theme_asset_table (0.26 seconds)
Migrating: 2021_12_13_145303_create_theme_asset_version_table
Migrated:  2021_12_13_145303_create_theme_asset_version_table (0.02 seconds)
PS E:\wwwroot\object>

6、查看数据表,字段名已经变更为:mime_type。如图5

图5

永夜