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

yii2 renaming migration file to reorder the migration error

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

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

m150311_012031_create_place_table.php
m150311_020901_create_meeting_table.php

我忘了我应该先创建 meeting table,然后再创建 place table,所以我该怎么做 运行 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 个迁移文件,我忘记了我应该在第二个订单上创建迁移。

如何操作?

不建议这样做,除非您尚未将提交推送到工作存储库。

问题在于,由于迁移的组织方式,除了更改文件名外,您还需要更改 class 名称。

迁移 class 名称与没有 .php 扩展名的文件名完全相同。

1) m150311_012031_create_place_table.php

将文件名更改为 m150311_020901_create_meeting_table.php,将 class 名称更改为 class m150311_020901_create_meeting_table

2) m150311_020901_create_meeting_table.php

将文件名更改为 m150311_012031_create_place_table.php,将 class 名称更改为 class m150311_012031_create_place_table