Sequelize 迁移是否应该更新模型文件?
Should Sequelize migrations update model files?
Sequelize 迁移是否应该使您的模型文件与您的数据库保持一致?
我使用 sequelize cli bootstrap 一个简单的项目并创建了一个模型 node_modules/.bin/sequelize model:generate --name User --attributes email:string
。我毫无问题地迁移了它。
然后我创建了以下迁移文件以向用户电子邮件属性添加 notNull 约束。
更新邮件迁移
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,
});
},
};
数据库架构已更新以添加约束,但模型文件没有。有没有一种方法可以在您进行迁移时自动更新模型文件?
Is there a way to automatically update the model files as you
make migrations?
不幸的是,没有。除了从 sequelize model:create
初始创建之外,sequelize 模型和迁移之间没有同步级别。但是,此问题中建议的工作流程是更新应传播 from 迁移 to 模型。这让我有点困惑,因为通常迁移是根据模型的更改自动生成的,反之亦然。
有持续的未解决问题跟踪这些功能,您可能会发现订阅这些功能有帮助:
- Generate initial migration from model?
- Auto-Create Migrations
- Possible to generate migrations to update existing models?
社区Suggestions/Solutions:
参考
如建议的那样,解决方法是在引入简单更改时使用 sequelize-cli
重新创建模型。但是,这种方法有明显的局限性,因为许多配置无法从 cli 中定义,例如关联。
此外,一个 npm 包 sequelize-auto-migrations 确实存在,它确实为生成迁移提供支持,但它似乎不是一个过于活跃的项目。
结论:
Should Sequelize migrations update model files?
Sequelize
/sequelize-cli
暂不支持此功能。
ORM 是否应该创建自动生成迁移的工具?
是的,这是所需的功能,否则开发人员将被迫违反 DRY 等原则,并在不同的文件中管理相同的逻辑。
Sequelize 迁移是否应该使您的模型文件与您的数据库保持一致?
我使用 sequelize cli bootstrap 一个简单的项目并创建了一个模型 node_modules/.bin/sequelize model:generate --name User --attributes email:string
。我毫无问题地迁移了它。
然后我创建了以下迁移文件以向用户电子邮件属性添加 notNull 约束。
更新邮件迁移
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,
});
},
};
数据库架构已更新以添加约束,但模型文件没有。有没有一种方法可以在您进行迁移时自动更新模型文件?
Is there a way to automatically update the model files as you make migrations?
不幸的是,没有。除了从 sequelize model:create
初始创建之外,sequelize 模型和迁移之间没有同步级别。但是,此问题中建议的工作流程是更新应传播 from 迁移 to 模型。这让我有点困惑,因为通常迁移是根据模型的更改自动生成的,反之亦然。
有持续的未解决问题跟踪这些功能,您可能会发现订阅这些功能有帮助:
- Generate initial migration from model?
- Auto-Create Migrations
- Possible to generate migrations to update existing models?
社区Suggestions/Solutions:
参考
如建议的那样,解决方法是在引入简单更改时使用 sequelize-cli
重新创建模型。但是,这种方法有明显的局限性,因为许多配置无法从 cli 中定义,例如关联。
此外,一个 npm 包 sequelize-auto-migrations 确实存在,它确实为生成迁移提供支持,但它似乎不是一个过于活跃的项目。
结论:
Should Sequelize migrations update model files?
Sequelize
/sequelize-cli
暂不支持此功能。
ORM 是否应该创建自动生成迁移的工具? 是的,这是所需的功能,否则开发人员将被迫违反 DRY 等原则,并在不同的文件中管理相同的逻辑。