免責聲明:這是一個有點「最佳做法」的問題,但我不知道怎麼回事,這樣的措辭更具體的或喚起一個更客觀的答案。如何更新與來自另一個數據庫中的數據MySQL數據庫?
我有一個小型Rails項目的兩個數據庫:一個dev
數據庫和一個prod
數據庫,位於同一臺服務器上。
會發生什麼事是,每隔幾個星期,我提出通過通過開發Rails環境的ActiveAdmin寶石dev的數據庫中的一些數據的變化(主要是插入)。我圍繞着Rails應用程序來確保新數據看起來不錯。當我準備好部署,我運行一個腳本:
- 轉儲
dev
分貝 - 刪除並重新創建
prod
分貝刪除所有數據 - 進口
dev
分貝轉儲到prod
分貝
我的直覺告訴我,這不是一個很好的解決方法,它也有點慢,但我似乎無法找到從一個數據庫到另一個數據庫進行數據部署的標準方式。標準方式是什麼,如果有的話?
事情我已經考慮:
- 設置附加數據庫是開發數據庫的副本;在部署中,以某種方式切換Rails應用程序以使用副本作爲「prod」,將舊的「prod」db更新爲副本等等。我幾乎無法將這個想法保留在我的腦海中,而且看起來像這樣一團糟。
- 做直接督促,完全無效的dev的數據庫,需要數據的變化(感覺很總值)
- 通過SQL腳本做數據的變化與開發事務,並把它們部署在督促(它會是真的,真的很煩人手工編寫這些腳本)
一些其他注意事項:那些做過都是我做
- 唯一的數據變化通過Rails遷移
- 的數據庫相對較小(最大的表是約1000行)
在相關問題上,您是否在「2.刪除並重新創建數據庫以刪除所有數據」之前備份生產數據庫?如果你不這樣做,那麼我認爲你的數據庫只是「只讀」的? ...您的Rails應用程序頁面沒有創建/更新記錄的表單? –
@ Jay-ArPolidario是的,我在刪除/重新創建它之前做了prod db的備份,但是,數據庫是RO。沒有任何形式可以創建/更新記錄。 –