2011-10-06 61 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查詢並且毫不奇怪它們如預期的那樣。將正確的行插入到相應的表中。所以我仍然堅持在這:( –