database - 更改数据库模型 - Sequelize

标签 database database-design orm sequelize.js sequelize-cli

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

我一定要吗:

sequelize db:migrate:undo

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

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

我想,我不完全确定迁移在事物方案中的作用。

最佳答案

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

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

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

谈到您的问题,您可以安全地使用 sequelize db:migrate:undo 删除表。
据我所知, sequelize db:migrate:undo 方法与您的模型无关,因此您在迁移之前或之后对其进行编辑都没有关系。

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

关于database - 更改数据库模型 - Sequelize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50091200/

相关文章:

ruby - Rails 3 - ActiveRecord,什么更有效率(更新与计数)?

数据库设计?

mysql - 加快 IP 查找的双重/嵌套选择查询

node.js - Node.js Knex与Sequelize有何相似/不同?

java - Spring Data JPA(CrudRepository)-BeanCreationException : Could not autowire field

database - 我在数据库中需要多少张表

ruby - 我如何枚举我们的 Redis 数据库中的所有键?

database - SQL Plus SP2-0306 来自 SQL 文件中的 CONNECT 行,相同的凭据在批处理文件中有效

mysql - 我是否正确理解了数据库设计?

c# - 从 .Net 更新 iSeries DATE/TIME/TIMESTAMP 列