【问题标题】:Adding columns in sequelize without resetting database在sequelize中添加列而不重置数据库
【发布时间】:2021-12-31 17:48:48
【问题描述】:

我正在使用 Sequelize Postgres 数据库,我知道我可以通过将列添加到我的架构中来添加列,然后运行 ​​sequelize.sync({ force: true })

这基本上会丢弃我的整个数据库并创建一个新数据库。

显然,这不会永远是一个可行的解决方案,但我不知道如何以任何其他方式添加新列。目前,如果我在架构中添加一列并运行:sequelize.sync({ force: false }),它不会引发任何错误,但不会添加任何新列,所以我只会得到column "foo" does not exist,直到我扔掉整个数据库并重新开始.

当然有没有办法在不重置所有内容的情况下添加一列?有没有我错过的选项?我在文档中的任何地方都找不到它。

【问题讨论】:

标签: node.js postgresql sequelize.js


【解决方案1】:

Sequelize 包括对数据库使用迁移的能力。实际上,这是您应该在进行更改时构建的东西,尽管如果这是第一个实例和创建,我可以理解不这样做。但是,当您的站点投入生产时,您将需要使用迁移来顺利更新数据库。 看看docs

您可以从 CLI 创建一个新的迁移文件并对其进行编辑以包含您的新字段。您仍然需要它们在您的模型文件中,就像您已经完成的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多