更改数据库模型 - Sequelize

Posted

技术标签:

【中文标题】更改数据库模型 - Sequelize【英文标题】:Making change in database model - Sequelize 【发布时间】:2018-04-29 20:55:00 【问题描述】:

我是初学者,我正在为我的数据库使用 Sequelize。我创建了模型,创建后进行了迁移,然后添加了模拟和种子,但意识到我对两个属性的数据类型犯了一个错误。我需要改变它,但我不确定这样做的正确方法是什么。

我必须:

sequelize db:migrate:undo

然后在模型中进行更改然后运行迁移?

还是我必须删除模型并重新创建它?

我想,我不完全确定迁移在计划中的作用。

【问题讨论】:

【参考方案1】:

迁移将生成 sql 查询并创建数据库表。

模型告诉 sequelize 上述迁移创建的表。例如,当您执行 User.create() 时,sequelize 需要知道表的详细信息才能将其转换为 sql 查询。

我觉得作为初学者,您最好自己创建迁移,而不是使用模型来生成迁移。

来到你的问题,你可以放心地使用sequelize db:migrate:undo 删除表格。 据我所知,sequelize db:migrate:undo 方法与您的模型无关,因此在迁移之前或之后编辑它都没有关系。

为了安全起见,您可以先使用 migrate:undo 删除表,然后编辑模型并再次运行迁移。

【讨论】:

我不确定迁移会受到什么影响,但您的解释有助于说明这一点。谢谢!

以上是关于更改数据库模型 - Sequelize的主要内容,如果未能解决你的问题,请参考以下文章

提交更改后,是不是有通用方法让 EF 返回新模型数据和关联的模型数据?

核心数据模型设计 - 更改“实时”对象也会更改保存的对象

Nodejs / PostgreSQL sequelize - 如何更新/更改数据库中的模型?

“从数据库更新模型”看不到类型更改

核心数据与 Ensembles 同步:在本地模型更改之前,不会拉下远程更改

iOS - 处理数据模型更改的正确方法是啥?