2011-06-05 39 views
0

開發時,我可以使用SVN或Git來保持代碼在計算機之間同步。但是,我一直無法找到類似於MySQL的東西。有人知道任何事嗎?保持MySQL模式在計算機之間同步

更新:我試圖獲取跨機器的架構更改。同時獲取數據同步會很好,但目前並不重要。

+0

如同在保持數據庫的多個副本(每臺機器一個副本)同步?出於什麼目的? – 2011-06-05 02:05:04

+1

您的優先級是什麼:表架構或數據? – Gabriel 2011-06-05 02:07:33

+0

每次在開發過程中更新機器之間,不是不斷地導出/導入機器之間的數據庫,如果可以同步它們將會很好。架構是我所擔心的一切;獲得數據同步也是一種獎勵。 – 2011-06-06 04:18:10

回答

4

數據不被視爲您的「應用程序源」的一部分。模式(即表格,索引等的定義)應該被視爲你的源代碼的一部分,儘管很多人在涉及到MySQL時都不打擾。

如果您需要保持數據同步,您應該查看複製方案。

看到這個about replication爲MySQL

0

除非你想使用複製(以前沒有親自用過MySQL),你最好使用某種腳本來執行mysqldump並每次提交備份。

你甚至可以用git鉤子來做到這一點,讓它自動將它轉儲出來並在推送前提交。

+0

這將是很好..會有辦法讓它自動更新接收/拉動? – 2011-06-06 04:26:39

0

MySQL複製是去這裏的路。

請注意複製雙方的數據,因爲MySQL不提供同步複製(還)。

有一個全面的工具集來監視您的複製(以及更多)稱爲Maatkit。這使您可以比較數據的校驗和,並在出現差異時進行同步。

0

https://github.com/reduardo7/db-version-updater

腳本,以保持數據庫模型更新的優化版本,採用了簡單的Linux腳本。

該腳本創建一個輔助數據庫表來註冊執行的腳本,並阻止執行任何已執行的腳本。

-

https://github.com/reduardo7/db-version-updater-mysql

保持數據庫模型更新的優化版本,使用的是MySQL腳本。

使用此腳本,您可以保留數據庫模型的版本,而不需要MySQL控制檯以外的其他工具。

這是最簡單和最簡單的方式來執行此任務如此常見,而無需使用其他額外的工具。

工作時,創建一個輔助數據庫表(database_version)來註冊執行的腳本,並阻止執行任何已執行的腳本。

相關問題