2011-09-08 78 views
0

我需要能夠比較兩個相似的數據庫。一個會比另一個稍微更新,並且對數據庫結構以及可能的內容進行更改。比較數據庫差異並獲取SQL輸出

到目前爲止,我已經嘗試使用liquibase,但它似乎沒有正確比較。 我也嘗試了MySQL Diff Perl模塊,但不考慮內容。

主要問題:

有誰知道的任何解決方案,這將使回SQL的結構和內容的差異,並生成SQL腳本?更

有點信息:

這樣做的用途是進行更新和安裝器官功能障礙綜合徵的phpBB,這樣的論壇可以與我們網站的其他部分一起被包括在構建過程中時。其中有一個4層過程(本地,開發,分期,生產)。

當安裝phpBB更新和MOD時,我將轉儲當前生產數據庫並鎖定站點,以便在進行更改時不會添加新數據。這樣數據庫不應該不同步。

當安裝的MOD和更新有時數據庫結構的變化,也表中的數據,尤其是增加的東西需要額外的權限等

所以我用將用於本地數據庫與升級的比較解決方案時,更改生產數據庫,爲我提供一個腳本,我可以在構建過程的每個層上運行腳本,而不是手動在每個層上安裝update/MOD。

+0

Enterprise Elements Repository具有此功能,但該工具不是免費的。 – Randy

+0

一個數據庫是否包含來自其他數據庫的所有數據?如果是這樣,是否有一個標識符可用於比較類似的記錄,如不可變的主鍵? –

+0

紅色的門有SQL比較和SQL數據比較,但不幸的是不是免費的。 –

回答

0

我已經使用工具>結構同步選項實際上找到了通過Navicat for MySQL來完成它的方法。

這將給出兩個數據庫之間結構差異的SQL語句。

然後做數據差異你可以使用數據同步。

我已經設法將結構差異的SQL腳本複製出來。然而,數據同步似乎更像是一個內部的Navicat事物。我確信有一種方法可以提取查詢。

請注意我正在使用許可證版本,所以不知道它是否可用免費使用。

0

您可以使用數據庫同步工具SQLyog同步兩個數據庫,無論是單向還是雙向。迄今爲止,這是MySQL GUI的最佳數據比較工具。並且,Schema同步用於兩個數據庫之間的模式比較。

這兩個工具都可以生成SQL腳本。

+0

好的...我會試一試。 – diggersworld