0

我正在设置中央构建服务器。服务器负责生成将部署到所有环境的官方构建工件。对于其中一个应用程序,有一个写入数据库的构建步骤。在部署时,我们需要将此构建步骤运行到适当的环境。由于稍后可靠地重现此构建步骤是困难/昂贵的,因此产生了在部署时捕获 sql 仅运行 sql 脚本的想法。

我无法控制生成 sql 的源代码。这是一个使用hibernate的java程序。我还没有找到将 log4j.properties/log4j.xml 放在哪里以使用休眠跟踪功能。显示“?”的准备好的语句可能存在问题 而不是实际值。

有没有人使用过 DB2 的 Activity Monitor 以及如何使用它?还是有其他(更简单的)选项,例如在休眠配置中替换 db2 驱动程序?不过,我仍然想使用 DB2Dialect 驱动程序。

编辑:我无法控制数据库结构。数据库结构可能会更新,或者该进程将来可能会写入不同的表。这不应该影响我现在设置的解决方案。

4

2 回答 2

0

如果在填充 id 之前表不存在/为空,您还可以导出包含记录的结果表,并在部署时将其导入生产数据库。

正如您已经说过的,使用执行的操作日志可能无法确定表的内容。记录准备好的语句将不包含绑定数据,如果执行的不仅仅是简单的插入,您可能会被迫实施部分 SQL 来重现您记录的内容。

于 2010-01-22T21:41:32.690 回答
0

看看 p6spy:

P6Spy 是一个开源框架,支持拦截和选择性修改数据库语句的应用程序。P6Spy 发行版包括以下模块:

P6日志。P6Log 拦截并记录任何使用 JDBC 的应用程序的数据库语句。此应用程序对于开发人员监控 EJB 服务器生成的 SQL 语句特别有用,使开发人员能够编写代码以在服务器上实现最高效率。P6Spy 旨在在几分钟内安装,无需更改代码。

http://www.p6spy.com/

于 2010-01-22T23:16:40.230 回答