Jef*_*del 9 sequelize.js sequelize-cli
Sequelize迁移是否应该使您的模型文件与您的数据库保持一致?
我使用sequelize cli来引导一个简单的项目并创建一个模型node_modules/.bin/sequelize model:generate --name User --attributes email:string.我没有问题地迁移了这个.
然后,我创建了以下迁移文件,以向用户电子邮件属性添加notNull约束.
updateEmail迁移
const models = require("../models")
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.changeColumn(models.User.tableName, 'email',{
type: Sequelize.STRING,
allowNull: false,
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.changeColumn(models.User.tableName, 'email',{
type: Sequelize.STRING,
});
},
};
Run Code Online (Sandbox Code Playgroud)
更新了数据库模式以添加约束,但模型文件没有.有没有办法在进行迁移时自动更新模型文件?
vap*_*aid 16
有没有办法在进行迁移时自动更新模型文件?
很不幸的是,不行.续集模型和迁移之间没有任何级别的同步,除了它们的初始创建sequelize model:create.然而,在这个问题上提出的工作流程是,更新应该传播从迁移到模型.这让我感到困惑,因为通常会根据模型的更改自动生成迁移,反之亦然.
跟踪这些功能的问题一直存在,您可能会发现订阅有用:
社区建议/解决方案:
请参阅/sf/answers/1990215391/
根据建议,解决方法是sequelize-cli在引入简单更改时使用重新创建模型.但是,这种方法存在明显的局限性,因为许多配置无法从cli定义,例如关联.
此外,确实存在一个npm包sequelize-auto-migration,它确实为生成迁移提供了支持,但它似乎不是一个过于活跃的项目.
结论:
Sequelize迁移应该更新模型文件吗?
Sequelize/ sequelize-cli尚不支持此功能.
ORM是否应该创建自动生成迁移的工具? 是的,这是所需的功能,否则开发人员不得不违反DRY等原则并在不同文件中管理相同的逻辑.
| 归档时间: |
|
| 查看次数: |
4879 次 |
| 最近记录: |