【问题标题】:NodeJS application database versioning and data migrationNodeJS 应用程序数据库版本控制和数据迁移
【发布时间】:2017-03-02 14:45:54
【问题描述】:

我计划使用 Postgres 作为我的数据库,并作为我的 ORM 框架作为我的 NodeJS 项目之一。我需要您关于如何在生产环境中完成数据库表更改的建议。

例如,我们使用一些数据库模式部署了版本 1 应用程序。 后来,我在第 2 版中的架构发生了变化。假设其中一张表已更改,删除了几列并添加了几列。 版本 2 中也不需要表本身之一。

在我的生产中,我有一些包含数据的数据库。当我安装我的 NodeJS 应用程序的第 2 版时,我需要保持旧数据不变并应用第 2 版的新数据库架构。

如何实现这一点,让我指出一些参考。

谢谢

【问题讨论】:

    标签: mysql node.js database postgresql sequelize.js


    【解决方案1】:

    Sequelize(或者更确切地说,sequelize-cli)有built in support for migrations

    您可以使用 Sequelize js api(例如queryInterface.dropColumn('users', 'address'))编写迁移或编写原始 SQL 并将其传递给 sequelize.query()

    【讨论】:

    • 我是否需要编写自己的脚本文件来处理这种情况。 “续集”不会自动做?
    • 如果您安装了sequelize-cli,您可以让它为您生成迁移骨架(运行sequelize db:migration:create),然后您对其进行修改以进行所需的数据库更改——这就是您要找的吗?
    • 是的,我想要一种使用 sequelize 数据模型自动生成迁移脚本的解决方案。你能给我一些参考页面或建议一些解决方案吗?
    • 我明白你现在的意思了。我还想从模型定义中生成迁移,但不幸的是这是不可能的!查看stackoverflow.com/questions/27835801/… 了解一些解决方法和建议
    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2013-04-10
    • 2011-12-22
    • 2011-02-05
    • 2017-10-09
    • 2014-07-16
    • 2015-06-14
    相关资源
    最近更新 更多