Yii2 重命名迁移文件以重新排序迁移错误


yii2 renaming migration file to reorder the migration error

我正在尝试重命名迁移文件以重新排序迁移,但我发现了一个错误。

我知道迁移文件的名称是根据时间戳生成的,例如:

m150311_012031_create_place_table.php
m150311_020901_create_meeting_table.php

我忘了在创建表之前应该先创建meetingplace所以我要做的是运行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