【问题标题】:Generate update changes as delta scripts以增量脚本的形式生成更新更改
【发布时间】:2012-02-15 00:33:37
【问题描述】:

我使用 H2/J2EE/Spring 应用程序,并使用 Flyway 更新生产服务器上的生产数据库 - 一切都很好。问题在于,将开发人员 H2 更改与生产 H2 合并总是非常复杂的(即生成 flyway delta 脚本)。如何以任何方式以随后的历史方式跟踪所有数据库更改以生成这些 SQL 更改? (所有数据库更新都使用管理前端完成)?

【问题讨论】:

    标签: java spring h2 flyway


    【解决方案1】:

    所以没有人会与您分享知识 - 如何为我轻松收集数据库数据和架构的更改? :) 因为我的临时解决方案是从他们的 SVN 中检出 h2(我的版本),并以下列方式修改 org.h2.message.TraceSystem java 类:

    public void write(int level, String module, String s, Throwable t) {
        ...
    
    
                String s2 = s.toUpperCase();
                if (s2.indexOf("SELECT") != -1) {
                    return; // :)
                }
    
                writeFile(format2(s2), t);
    
    }
    

    现在我至少能够获取更改 :) (使用 ConvertTraceFile for .trace.db)

    【讨论】:

      【解决方案2】:

      您可以使用trace option,然后使用ConvertTraceFile 工具从跟踪文件创建一个SQL 脚本。

      【讨论】:

      • 太棒了!但是 - 这个调用的自动化呢?
      • 不,不幸的是,跟踪文件中的信息并不是我真正需要的,尤其是它记录所有选择,以及会话期间发生的所有事情(访问模型数据)......我需要的是实现所有模式更改(ALTER、CREATE 等)和数据修改(INSERT、UPDATE、DELETE)。不过还是谢谢!!!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 2020-03-06
      • 1970-01-01
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多