Yii2尝试重新应用旧的迁移文件

时间:2016-12-08 23:07:23

标签: yii2 migration

我确信这很简单,但我似乎无法弄明白。

今天早些时候我将我的Yii2安装更新到最新的开发版本。在我完成测试后,我决定将其恢复到稳定版本。 当作曲家无法回滚时,我删除了/VENDOR目录下的所有内容以及composer.lock并运行了composer update

问题: 现在我无法使用php yii migrate,因为它说我必须对名为m130524_201442_int的用户表应用第一次迁移。 但是,当我运行php yii migrate/history all时,它显示它已在之前完成:

Yii Migration Tool (based on Yii v2.0.10)

Total 17 migrations have been applied before:
    (2016-12-06 22:15:37) m161206_214310_rts_detail_type_enum2int
    (2016-12-06 22:15:36) m161206_210705_rts_types
    (2016-12-03 01:32:34) m161203_012757_emaillayout
    (2016-11-18 19:59:15) m161118_195401_rts_reimbursment
    (2016-11-18 17:48:24) m161118_172654_program
    (2016-11-18 04:51:38) m161118_043442_duedata_droptime
    (2016-11-17 20:05:40) m161117_200352_default_wo_tasks
    (2016-11-16 21:40:27) m161116_212528_defaultdates
    (2016-11-16 18:15:19) m161116_180722_defaulttasks
    (2016-11-14 22:40:05) m161114_221144_distribution
    (2016-11-14 20:26:09) m161114_202027_responsibility
    (2016-11-14 19:36:02) m161114_192729_distribution
    (2016-11-09 20:33:19) m161109_191955_locks2
    (2016-11-09 17:13:40) m161109_170126_rts_timing_impl
    (2016-11-09 17:13:39) m161011_171958_resp_list
    (2016-10-07 05:29:35) m161007_051543_locks
    (2016-08-04 15:57:58) m130524_201442_int

感谢任何帮助。

更新 我决定将我的代码推送到另一个测试服务器。从Git中提取新代码后,我尝试运行退出的php yii migrateNo new migrations found. Your system is up-to-date.

之后我运行了composer update,因为composer.jsoncomposer.lock已被此次更新所取代。 Composer完成运行安装大量组件,但没有更改Yii2版本。我运行php yii migrate并退出并显示相同的消息:No new migrations found. Your system is up-to-date.

这让我觉得我的开发服务器出了问题。

关于它可能是什么的任何想法?我可以重建开发服务器,但这个难题让我烦恼。

我感谢你们有任何意见。

1 个答案:

答案 0 :(得分:0)

Yii2的迁移工作并不十分舒服,因为即使您对迁移文件进行了更改,迁移系统也无法检测到。要删除

  

未找到新的迁移。您的系统是最新的

消息并重新应用新的迁移文件,您需要转到数据库并搜索自动生成的表。它被称为base_migration(或只是migration)。

您会看到它包含有关已应用迁移的信息 - 版本(文件名)和应用时间。从该表中删除所有行。

删除所有行后,迁移系统将不再检测任何已应用的更改,并将获取migration文件夹中找到的所有文件。