我确信这很简单,但我似乎无法弄明白。
今天早些时候我将我的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 migrate
:No new migrations found. Your system is up-to-date.
之后我运行了composer update
,因为composer.json
和composer.lock
已被此次更新所取代。 Composer完成运行安装大量组件,但没有更改Yii2版本。我运行php yii migrate
并退出并显示相同的消息:No new migrations found. Your system is up-to-date.
这让我觉得我的开发服务器出了问题。
关于它可能是什么的任何想法?我可以重建开发服务器,但这个难题让我烦恼。
我感谢你们有任何意见。
答案 0 :(得分:0)
Yii2的迁移工作并不十分舒服,因为即使您对迁移文件进行了更改,迁移系统也无法检测到。要删除
未找到新的迁移。您的系统是最新的
消息并重新应用新的迁移文件,您需要转到数据库并搜索自动生成的表。它被称为base_migration
(或只是migration
)。
您会看到它包含有关已应用迁移的信息 - 版本(文件名)和应用时间。从该表中删除所有行。
删除所有行后,迁移系统将不再检测任何已应用的更改,并将获取migration
文件夹中找到的所有文件。