在迁移中定义或修改模型的正确方法
proper way to define or modify your model in sequelize with migrations
我是 python 主力。我开始了 node express 项目,但我对 sequelize 用于迁移的命令感到困惑。
在 python flask-migrate 中,您编写模型然后执行 flask db migrate
根据您编写的模型进行迁移。然后将模型应用于数据库,输入 flask db upgrade
命令。
但我发现在 Node.js 中,sequelize-cli 命令的含义不同。 sequelize db:migrate
实际上“应用”了对应于 python flask 中的 upgrade
命令的现有迁移。
我的问题是,在 Node.js 中定义或修改模型的正确程序是什么?您必须自己制作模型 class “AND” 迁移脚本然后 运行 db:migrate
命令?
似乎很奇怪,我必须进行两次相同的更改(模型和迁移脚本)还有另一种简单的方法吗?
如果您完全绕过迁移并使用 sequelize.sync() 方法(从您的模型构建表),则可以避免这种“双重工作”。
这样做的缺点是,当您更改模型时,您需要将 {force: true} 标志传递到 .sync() 方法中,以便包含 new/altered 属性.此选项会删除您的表并重建它们。这对开发来说很好,但对生产来说很尴尬。
我是 python 主力。我开始了 node express 项目,但我对 sequelize 用于迁移的命令感到困惑。
在 python flask-migrate 中,您编写模型然后执行 flask db migrate
根据您编写的模型进行迁移。然后将模型应用于数据库,输入 flask db upgrade
命令。
但我发现在 Node.js 中,sequelize-cli 命令的含义不同。 sequelize db:migrate
实际上“应用”了对应于 python flask 中的 upgrade
命令的现有迁移。
我的问题是,在 Node.js 中定义或修改模型的正确程序是什么?您必须自己制作模型 class “AND” 迁移脚本然后 运行 db:migrate
命令?
似乎很奇怪,我必须进行两次相同的更改(模型和迁移脚本)还有另一种简单的方法吗?
如果您完全绕过迁移并使用 sequelize.sync() 方法(从您的模型构建表),则可以避免这种“双重工作”。
这样做的缺点是,当您更改模型时,您需要将 {force: true} 标志传递到 .sync() 方法中,以便包含 new/altered 属性.此选项会删除您的表并重建它们。这对开发来说很好,但对生产来说很尴尬。