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

时间:2015-03-11 02:20:30

标签: php yii migration yii2

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

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

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个迁移文件,我忘了我应该在第二个订单上创建迁移。

怎么做?

1 个答案:

答案 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