我正在尝试重命名迁移文件以重新排序迁移,但我发现了一个错误。
我知道迁移文件的名称是根据时间戳生成的,例如:
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 个迁移文件,并且忘记了我应该在 2nd 顺序上创建迁移怎么办。
怎么做?
不建议这样做,除非您尚未将提交推送到工作存储库。
问题在于,除了更改文件名之外,由于迁移的组织方式,您还需要更改类名。
迁移类名与不带扩展名.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
。