我想了解一些关于Yii推荐工作流程的细节。假设您已经有了一些数据库和模型。在一天之内,您需要向模型添加一个新字段。在Django中,你只需要修改models.py文件,然后运行manage.py。py migrate—它将分析更改,创建迁移文件并将更改应用到数据库。但是在ii中我应该怎么做呢?
我只从文档和手册中看到以下方法:
- 创建空迁移
- 尝试在Yii-migration语法中编写必要的更改(更改列和添加外键可能不那么明显,比编写SQL查询更困难)。
- 运行
yiic migrate
- 使用Gii为新的数据库结构生成模型代码,并将新字段复制粘贴到现有的模型文件。
在我看来,除了修改Model之外,还创建了迁移,这会导致很多无用的工作。所以,不像Django那样只修改模型,我必须在Yii中使用奇怪的迁移语法,然后手动修改模型。这真的是应该的工作方式吗?难道就不能简化一下吗?
我使用下面的方法5-6个月了,效果很好:
- 在models文件夹中创建新文件夹,命名为entities。
- 使用gii和 生成所需的所有模型
使用gii生成所有需要的模型
a)在模型路径字段中使用新文件夹,"entities"代替models文件夹
b)在模型类字段中,添加"Entity"作为模型名后缀
- 现在在模型文件夹中,创建一个新的PHP类,并将其命名为"Gift",并从"GiftEntity"扩展到
- 在预加载导入的类中添加新文件夹"entities"。
现在,当你在db中做新的迁移和改变你的模型时,使用gii来重新生成你的实体模型"GiftEntity",并且你在扩展模型"Gift"中的所有代码都是不变的。