gpt4 book ai didi

node.js - 使用 Sequelize JS 和 CLI 进行迁移

转载 作者:行者123 更新时间:2023-12-03 22:22:53 25 4
gpt4 key购买 nike

目前,我已经开始在使用 SEQUELIZE ORM 的 NODE JS 上工作。 Sequelize 确实支持使用 sequelize-cli 的迁移,但文档并未解释有关如何使用迁移的所有细节。我想知道是否可以使用 Sequelize CLI 进行以下操作。考虑到 PROD 部署,以下几点很重要

  • 通过查看模型自动生成迁移文件
  • 根据对模型
  • 所做的新更改自动生成迁移文件
  • 生成迁移的 SQL 脚本,以便我们可以在 PROD 上运行它
  • 环境特定迁移(Dev、Stage、Prod

  • 我已经阅读了文档,但它没有解释上面提到的任何一点。请帮我解决这个问题,我

    最佳答案

    使用迁移的想法是它们是数据库之王。它们是唯一可以更改您的数据库架构的东西,您应该更改数据库架构的唯一方法是简单地运行迁移。

    回答您的问题:

    1. 通过查看模型 自动生成迁移文件

    别。手动生成迁移。如果要更改特定表的列,请先生成迁移,然后再修改相应的模型。迁移是数据库之王。模型排在第二位。

    2. 根据对模型 所做的新更改自动生成迁移文件

    别。和上面一样。

    3. 生成迁移的 SQL 脚本,以便我们可以在 PROD 上运行它

    别。您应该能够直接在生产中运行迁移,连接到生产数据库,就像您在 dev 中运行它们一样,使用 sequelize db:migrate 。每次将新代码推送到生产时,您的部署脚本都应自动在生产数据库上运行 sequelize db:migrate

    4. 环境特定的迁移(Dev、Stage、Prod)

    绝对不要。每个迁移都应该在每个环境中运行。无论环境如何,您的数据库都应该具有相同的架构。

    更新:这是一个示例迁移,它可以(向上和向下运行)添加新的 bool 列:

    'use strict';

    module.exports = {
    up: function (queryInterface, Sequelize) {
    return queryInterface.addColumn(
    'my_table',
    'my_new_column',
    {
    type: Sequelize.BOOLEAN,
    }
    )
    },

    down: function (queryInterface, Sequelize) {
    return queryInterface.removeColumn('my_table', 'my_new_column')
    }
    };

    关于node.js - 使用 Sequelize JS 和 CLI 进行迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41121690/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com