【发布时间】:2012-02-15 00:33:37
【问题描述】:
我使用 H2/J2EE/Spring 应用程序,并使用 Flyway 更新生产服务器上的生产数据库 - 一切都很好。问题在于,将开发人员 H2 更改与生产 H2 合并总是非常复杂的(即生成 flyway delta 脚本)。如何以任何方式以随后的历史方式跟踪所有数据库更改以生成这些 SQL 更改? (所有数据库更新都使用管理前端完成)?
【问题讨论】:
我使用 H2/J2EE/Spring 应用程序,并使用 Flyway 更新生产服务器上的生产数据库 - 一切都很好。问题在于,将开发人员 H2 更改与生产 H2 合并总是非常复杂的(即生成 flyway delta 脚本)。如何以任何方式以随后的历史方式跟踪所有数据库更改以生成这些 SQL 更改? (所有数据库更新都使用管理前端完成)?
【问题讨论】:
所以没有人会与您分享知识 - 如何为我轻松收集数据库数据和架构的更改? :) 因为我的临时解决方案是从他们的 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)
【讨论】:
您可以使用trace option,然后使用ConvertTraceFile 工具从跟踪文件创建一个SQL 脚本。
【讨论】: