2012-12-21 174 views
1

我正在使用YII 1.1.12。当我这样做:YII迁移历史记录未保存到数据库中

yiic migrate 

在我的应用程序的受保护的文件夹内,我被告知有一个新的迁移被应用。我回答“是”,以便适用迁移。过了一段时间,我得到:

*** applied m121220_121256_initialize_database (time: 6.060s) 
Migrated up successfully. 

一切都很好,直到这一点。然后,当我输入的“yiic迁移”,而不是被告知,有没有新的迁移,我得到告诉:

Yii Migration Tool v1.0 (based on Yii v1.1.12) 

Total 1 new migration to be applied: 
    m121220_121256_initialize_database 

应用上述迁移? (yes | no)[no]:

当我检查tbl_migration表时,那里只有基础迁移。没有关于initialize_database的内容。

任何想法?

回答

0

我意识到问题是我直接从PHPMyAdmin运行的sql命令包含一个事务。当我删除有关事务的行时,yii_migration表中的数据库行已成功插入。我不知道为什么会这样,但它是。

1

您的迁移是否创建数据库?如果是这样,它可能会将Yii关闭,并且它在一开始就创建了迁移结构,然后无法插入,我不确定该行为会是什么。

如果m121220_121256_initialize_database正在做任何破坏性的工作,那么在运行数据库之后使用yiic migrate mark 121220_121256手动将数据库设置为此迁移可能是一个好主意。

通过这种方式,您可以执行进一步测试,以查看它是否是迁移错误或迁移中的某些破坏性操作,如删除/创建数据库。