我正在尝试重命名迁移文件以重新排序迁移,但我发现了一个错误。
我知道迁移文件的名称是基于时间戳生成的,例如:
m150311_012031_create_place_table.php
m150311_020901_create_meeting_table.php
我忘了在创建meeting
表之前我应该首先创建place
表,所以我要运行yii migrate/down all
来首先回滚迁移,我重命名文件以重新排序这样:
m150311_012030_create_meeting_table.php
m150311_012031_create_place_table.php
并运行yii migrate up/all
,但我收到此错误:
PHP Fatal error: Class 'm150311_012030_create_meeting_table' not found in C:\wamp\www\yii2advanced\vendor\yiisoft\yii2\console\controllers\MigrateController.php on line 113
我认为composer dumpautoload
会解决这个问题,但没有任何反应。我知道我可以从重新开始删除并创建所有迁移,但是如果我已经创建了10个迁移文件,我忘了我应该在第二个订单上创建迁移。
怎么做?
答案 0 :(得分:5)
不建议您这样做,除非您尚未将提交推送到工作存储库。
问题在于,除了更改文件名之外,还需要更改类名,因为迁移的组织方式。
迁移类名称与没有.php
扩展名的文件名完全相同。
1) m150311_012031_create_place_table.php
将文件名更改为m150311_020901_create_meeting_table.php
,将班级名称更改为class m150311_020901_create_meeting_table
。
2) m150311_020901_create_meeting_table.php
将文件名更改为m150311_012031_create_place_table.php
,将班级名称更改为class m150311_012031_create_place_table
。