Yii中的迁移+模型更改


Migrations + model changes in Yii

我想了解一些关于Yii推荐工作流程的细节。假设您已经有了一些数据库和模型。在一天之内,您需要向模型添加一个新字段。在Django中,你只需要修改models.py文件,然后运行manage.py。py migrate—它将分析更改,创建迁移文件并将更改应用到数据库。但是在ii中我应该怎么做呢?

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

  1. 创建空迁移
  2. 尝试在Yii-migration语法中编写必要的更改(更改列和添加外键可能不那么明显,比编写SQL查询更困难)。
  3. 运行yiic migrate
  4. 使用Gii为新的数据库结构生成模型代码,并将新字段复制粘贴到现有的模型文件。

在我看来,除了修改Model之外,还创建了迁移,这会导致很多无用的工作。所以,不像Django那样只修改模型,我必须在Yii中使用奇怪的迁移语法,然后手动修改模型。这真的是应该的工作方式吗?难道就不能简化一下吗?

我使用下面的方法5-6个月了,效果很好:

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

使用gii生成所有需要的模型

a)在模型路径字段中使用新文件夹,"entities"代替models文件夹

b)在模型类字段中,添加"Entity"作为模型名后缀

  • 现在在模型文件夹中,创建一个新的PHP类,并将其命名为"Gift",并从"GiftEntity"扩展到
  • 在预加载导入的类中添加新文件夹"entities"。
  • 现在,当你在db中做新的迁移和改变你的模型时,使用gii来重新生成你的实体模型"GiftEntity",并且你在扩展模型"Gift"中的所有代码都是不变的。