我們有一個包含對象集合的開發服務器。 這些對象的實際積累是一個持續的過程,它在本地開發服務器上運行一整套標籤,驗證等過程。 一旦這些對象生產就緒,它們就會被添加到生產數據庫中,從那時起,它將在計算中使用它們。MongoDB同步開發和生產數據庫
我正在尋找一種簡單地將delta(新對象)添加到生產數據庫中,同時將所有其他集合和舊對象保留在同一集合中的方法。 到目前爲止,我們已經使用MySql,所以這個過程只涉及運行數據庫結構和數據同步(我們使用Navicat)。 我們現在轉向MongoDB,所以這個過程有點棘手。
我看着這個,我認爲以下解決方案不適合我的需求:
- 傾銷dev的DB和使用mongodump then mongorestore
- 運行db.copyDatabase Production數據庫加載它 - 實際上將生產數據庫替換爲開發數據庫的副本。
這兩種解決方案都存在問題,因爲他們實際上會替換Production DB,因爲我只想更新現有集合中的對象。 此外,正在開發=>生產不適合主從拓撲。
我能想到的最好的事情是:
- 複製dev的DB成「開發」 DB的生產實例。
- 將集合從此開發數據庫複製到實際生產數據庫,並添加一個謂詞,我將只添加生產數據庫中不存在的對象,類似於this solution。
我想知道是否有人有更好的解決方案?
如果沒有,有沒有人有腳本可以執行此操作?