2017-04-05 55 views
0

所以,說我有一個包含4代表一SQL(MySQL的)數據庫{A,B,C,d}MySQL數據導出工具

和我想創建其含有來自數據的子集的測試數據庫第一個數據庫(時間和類型)。

例如: 「我想創建一個新的(結構相同的)數據庫,其中包含過去兩週用戶」bob「的所有數據。」

最簡單的方法是從第一個數據庫轉儲兩週的數據,使用vagrant/chef啓動一個新的空數據庫並導入轉儲數據。

但是,這不起作用,因爲每個表都有彼此的外鍵。因此,如果我有兩週的「A」數據,它可能依賴於來自「D」的一年的數據。

我目前的解決方案是使用我的Java應用程序的數據層將數據加載到內存中,然後將其插入到數據庫中。但是,這不可持續/可擴展。

因此,我的問題是,有沒有人知道任何工具或技巧將一組「完整」數據集從一個數據庫遷移到另一個數據庫,考慮一個表的時間段幷包括所有其他相關數據從其他表中以及?

任何建議將是非常美妙的:)

+0

刪除廚師標籤,因爲這似乎與有趣的廚師 – coderanger

回答

1

試試你的「幼稚的做法」,但SET FOREIGN_KEY_CHECKS=0;第一,然後運行您的備份查詢,然後SET FOREIGN_KEY_CHECKS=1;

+0

有關,但我最好希望此工具能夠在不知道每個表中包含哪些數據的情況下工作。 –

1

還有就是要重新創建數據的一部分類似數據庫的方式,不是那麼簡單,但也可以使用:

  1. 創建新的數據庫(僅架構),例如使用buckupschema comparer工具。
  2. 下一步是複製表格數據。你可以在數據比較器工具的幫助下完成它(查看模式比較器鏈接)。選擇您需要的表並檢查記錄數據以進行同步。