Yii中的迁移+模型更改

时间:2016-06-26 19:15:05

标签: php yii yii2 migration database-migration

我想获得有关Yii推荐工作流程的一些细节。想象一下,你已经拥有了一些数据库和一些模型。有一天你需要在模型中添加一个新字段。在Django中,您只需修改models.py文件,然后运行manage.py makemigrations&& manage.py migrate - 它将分析更改,创建迁移文件并将更改应用于数据库。但是我应该在Yii做什么?

我只从文档和手册中看到以下方式:

  1. 创建空迁移
  2. 尝试在Yii-migration语法中编写必要的更改(对于更改列和添加外键可能不那么明显,比编写SQL查询更困难。)
  3. 运行yiic migrate
  4. 使用Gii为新数据库结构生成模型代码,并将新字段复制粘贴到现有模型文件中。
  5. 从我的角度来看,通过创建迁移以及来修改Model会导致大量无用的工作。因此,我不必像在Django中那样修改模型,而是在Yii中使用奇怪的迁移语法,然后手动修改模型。它真的应该如何运作?是不是可以以某种方式简化它?

1 个答案:

答案 0 :(得分:1)

我使用以下方法,为期5-6个月,其工作完美:

  1. 在模型文件夹中创建新文件夹,将其命名为实体。
  2. 使用gii和
  3. 生成所需的所有模型

    generate all models you need using gii

    a)在模型路径字段中使用新文件夹"实体"而不是模型文件夹

    b)在模型类字段中,添加"实体"作为型号名称后缀

    1. 现在在models文件夹中,创建新的PHP类并将其命名为例如" Gift"并从" GiftEntity"
    2. 扩展它
    3. 添加新文件夹"实体"在预加载导入的类中。
    4. 现在,当您在db中进行新迁移并更改模型时,请使用gii重新生成实体模型" GiftEntity"以及扩展模型中的所有代码" Gift"没有动过。