gpt4 book ai didi

grails - 从迁移中生成SQL,而不需要全部操作

转载 作者:行者123 更新时间:2023-12-02 14:42:36 25 4
gpt4 key购买 nike

假设我有3个提交(每个提交都添加了新的迁移):

  • v3(添加新列)
  • v2(添加新表)
  • v1

  • 生产数据库位于 v1,我的开发数据库位于 v3

    我想生成一个SQL脚本,它将生产数据库升级到 v3

    我唯一知道的方法是将开发数据库回滚到 v1(通过 check out v1并运行 dbm-rollback),然后 check out v3并运行 dbm-update-sql

    有没有一种方法可以做到不回退开发数据库(或破坏 DATABASECHANGELOG表)?像 dbm-update-count-sql 2这样的东西将为最后两次迁移创建SQL,无论它们是否已经在开发中运行。

    编辑:无法从开发机器连接到产品数据库

    最佳答案

    如果您使用updateSQL生成SQL,则Liquibase不会更改您所指向的数据库,它只会生成将在常规更新中执行的内容。因此,最简单的选择是仅对生产数据库运行updateSQL以获得更新它所需的脚本。

    如果那不适合您,如果您能够将DATABASECHANGELOG表备份/还原到另一个数据库(甚至是空白数据库)并对该数据库运行updateSQL,它将输出相同的SQL。

    最后,在运行updateSQL时,可以使用"offline mode"使用CSV文件作为DATABASECHANGELOG表。使用空表运行将生成所有更新SQL,但是如果仅在生产中包含文件中的更改,则updateSQL将输出更新生产所需的内容。

    关于grails - 从迁移中生成SQL,而不需要全部操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27085428/

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