2012-04-12 47 views
1

有沒有辦法檢查兩個DDL的等價性?DDL等效

爲了說明問題,我面對:

有一個MySQL數據庫和基於squeryl應用程序內,與它的工作原理。我想檢查,如果數據庫處於正確的狀態(根據DDL,由Schema.printDdl產生)在應用程序啓動之前(或同時)(如果有人忘記創建補丁或其他東西)。

任何想法,如何實現?

+2

我們使用'mysqlexport --no-data'並將輸出與文件進行比較。 – Konerak 2012-04-12 08:40:17

+0

@Konerak這裏的問題是'mysqlexport'和'Schema.printDdl'可能會生成非常不同的ddls:語句順序,空格/製表符/返回/附加括號/等。有沒有辦法巧妙地以編程方式檢查它們是否基本相同? – folone 2012-04-12 08:59:49

+0

確認,轉儲。是。 – Konerak 2012-04-12 09:17:08

回答

1

爲此我使用SQLyog。它具有Schema同步工具,您也可以使用它來比較兩個數據庫的結構。

也有其他類似的工具,例如, TOAD for MySQL

0

您可以在dbForge Studio for MySQL中使用database project functionality

  1. 創建一個項目並添加現有文件(SQL腳本)。
  2. 分配數據庫連接並從項目彈出式菜單中點擊'新建模式比較'。

它將幫助您比較,找出差異並將數據庫項目(您的案例中的SQL腳本)與所需數據庫同步。