2011-10-06 58 views
0

我目前负责为我们的应用程序迁移数据,以便升级到新版本。我试图从HSQL迁移到HSQL,稍后我们将继续到其他组合。HSQL中的数据迁移问题,新数据库中不包含少量表

所以我有一个独立的工具来做到这一点。我正在使用MockServletContext来初始化我的服务(此迁移将在不启动服务器的情况下完成)。

问题是,除了2-3个表格之外,所有表格都被迁移,数量取决于迁移数据的大小。在广泛的调试中,我发现没有错。这意味着所有的数据都通过eclipse进行调试,但在正常运行时,最后3个表无法完成。

任何线索在哪里看?

在正常运行中,我让记录器查看我们是否正在读取源数据库中的所有数据,并且实际上日志证明我们这样做。 我无法放置日志的唯一地方是当它调用驱动程序中的方法时。

在最后一步中,我们调用了PreparedStatement对象的executeBatch()/ executeUpdate()方法(尝试使用两者,但结果完全相同)。

我完全无能为力,在哪里寻找。有什么建议么?

感谢

回答

0

在正常运行我已经把记录器,看看我们是从源数据库中读取所有的数据,事实上日志证明我们做的。我无法放置日志的唯一地方是在驱动程序中调用方法的时候。

如果您怀疑有问题,请尝试在log4jdbc环绕您的​​驱动程序。它将显示发布给数据库的SQL。祝你好运!

+0

但我得到正确的结果在调试模式下运行,而不是在正常运行模式。它响起某种钟声吗?我的意思是我想解决这个问题,但我也想知道为什么会发生这种行为。 –

+0

@ user391972这就是我推荐它的原因。在NORMAL运行模式下添加SQL日志记录,看看究竟发生了什么。答案是通用的,你的问题描述也是如此。如果您首先透露更多,但大部分是无法处理数据的SQL语句,那么您可能会获得更好的帮助。 – MaDa

+0

我检查了SQL查询并且毫不奇怪它们如预期的那样。将正确的行插入到相应的表中。所以我仍然坚持在这:( –