【问题标题】:yii2 migrations not applyingyii2 迁移不适用
【发布时间】:2015-10-07 05:00:38
【问题描述】:

我运行./yii migrate 并得到

No new migration found. Your system is up-to-date.

而我的数据库是干净的。

如果我运行./yii migrate/create然后./yii migrate成功找到它并询问是否应用它。

另外,如果我重命名未应用的迁移之一

例如

m141111_051424_create_user_table` => m151111_051424_create_user_table

yii 也发现了它。

【问题讨论】:

  • 你能在“迁移”表中检查“m141111_051424_create_user_table”记录的存在吗?
  • @IvanButtinoni 数据库中没有这样的表

标签: php yii yii2 database-migration


【解决方案1】:

默认情况下,有关应用迁移的所有信息都存储在表迁移中。检查。

另外,如果我重命名未应用的迁移之一

例如 m141111_051424_create_user_table` => m151111_051424_create_user_table

你也重命名了类名吗?

【讨论】:

    【解决方案2】:

    在 common/config/main.php 中配置数据库(我假设你使用了高级模板),因为 migrate 看不到 fronted/config/main.php

    另见migration guide

    【讨论】:

      【解决方案3】:

      首先,检查在您的应用程序中哪些迁移已被视为成功。 您可以通过从数据库中获取所有成功迁移的列表来检查它:

      SELECT * FROM `you_db_name`.`migration`;
      

      如果您在那里看到您的迁移,那么您有多种方法可以解决此问题。

      1) 从表迁移中删除你的迁移记录。

      2) 注释掉函数(如果需要),然后向下迁移,然后向上迁移。

      向下迁移(还原数据结构):

      php yii migrate/down 1 
      

      向上迁移:

      php yii migrate up
      

      如果迁移文件正确写入,所有这些都可以正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多