更改模型后如何创建 Sequelize cli db 迁移
Posted
技术标签:
【中文标题】更改模型后如何创建 Sequelize cli db 迁移【英文标题】:How to create a Sequelize cli db migration after changes to the model 【发布时间】:2015-10-12 13:37:42 【问题描述】:我从 sequelize 开始,并在网上关注他们的 video tutorial。运行后
node_modules/.bin/sequelize model:create --name User --attributes username:string
node_modules/.bin/sequelize model:create --name Task --attributes title:string
它为创建用户和创建任务创建了迁移文件。然后我必须将关联添加到每个模型,如下所示:
// user.js
classMethods:
associate: function(models)
User.hasMany(models.Task);
// task.js
classMethods:
associate: function(models)
Task.belongsTo(models.User);
但是,用于为用户和任务创建表的迁移文件已经创建。我是否必须手动更新它们以添加关系? “migration:create”命令创建迁移框架文件。是手动填写骨架文件,还是除了模型创建之外,有没有办法自动创建完整的迁移文件?
P.S 我看过下面的 *** 问题:How to auto generate migrations with Sequelize CLI from Sequelize models?
【问题讨论】:
【参考方案1】:您可以从空的迁移文件创建单独的迁移。当我需要向表中添加一些额外的列时,我这样做了。
sequelize migration:create --name users
然后在我的新迁移文件中。
module.exports =
up: function (queryInterface, Sequelize)
queryInterface.addColumn(
'Users',
'url',
Sequelize.STRING
);
,
down: function (queryInterface, Sequelize)
queryInterface.removeColumn(
'Users',
'url',
Sequelize.STRING
);
;
然后运行迁移。
sequelize db:migrate
【讨论】:
【参考方案2】:试试这个新的 npm 包
Sequelize-mig
安装:
npm install sequelize-mig -g / yarn global add sequelize-mig
然后像这样使用它
sequelize-mig migration:make -n <migration name>
它会自动为您生成所有更新的迁移文件
【讨论】:
以上是关于更改模型后如何创建 Sequelize cli db 迁移的主要内容,如果未能解决你的问题,请参考以下文章
Nodejs / PostgreSQL sequelize - 如何更新/更改数据库中的模型?
GraphQl,Sequelize-CLi,模型捆绑器 - sequelize.import 不是函数