我正在使用 Sequelize Postgres 数据库,并且我知道我可以通过将一列添加到我的架构中来添加它,然后运行 sequelize.sync({ force: true })
。
这基本上抛出了我的整个数据库并创建了一个新数据库。
显然,这不会永远是一个可行的解决方案,但我无法弄清楚如何以任何其他方式添加新列。目前,如果我向我的模式添加一列并运行: sequelize.sync({ force: false })
,它不会抛出任何错误,但不会添加任何新列,所以我只会得到 column "foo" does not exist
,直到我抛出我的整个数据库并重新开始。
当然有一种方法可以在不重置所有内容的情况下添加列吗?有没有我缺少的选项?我无法在文档中的任何地方找到它。
最佳答案
Sequelize 包括使用数据库迁移的能力。实际上,这是您应该在进行更改时构建的东西,尽管如果这是第一个实例和创建,我可以理解不这样做。但是,当您的站点投入生产时,您将需要使用迁移来平滑更新数据库。
看一下文档:
https://sequelize.readthedocs.io/en/latest/docs/migrations/
在 CLI 中,您可以创建一个新的迁移文件并对其进行编辑以包含您的新字段。正如您已经完成的那样,您仍然需要在模型文件中使用它们。
关于node.js - 在不重置数据库的情况下在 sequelize 中添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59082431/