這個問題更多的是架構和庫,而不是實現。保持部分離線的sqlite數據庫與postgresql同步
我目前在項目中工作,這需要在客戶端保持與服務器上的遠程數據庫同步的本地長期緩存存儲(每天更新一次)。對於客戶端sqlite已被選爲輕量級方法,並且postgresql作爲功能豐富的db在服務器。 postgres的本地複製機制是沒有選擇的,因爲我需要保持客戶端真正輕量級,並且不依賴像db服務器這樣的外部組件。
實現語言是Python。現在我正在查看像SQLAlchemy這樣的ORM,但之前沒有任何工作。
- SQLAlchemy有沒有任何工具可以讓sqlite和postgres dbs保持同步?
- 如果沒有,是否還有其他Python庫有這樣的工具?
- 如果任務必須「手工」解決,那麼關於架構應該如何應該是什麼樣的想法?
補充: 這就像遙測,目標客戶將只有一天
所以大約20分鐘的網絡連接,該主要問題是這樣一個系統的構建築
這個問題太廣泛了。 – e4c5
附註。如果在桌面上有一個折衷的地方,你可以看看CouchDB作爲離線優先數據庫(文檔雖然不是關係數據庫)做廣告。或者至少在他們的文檔中尋找關於[最終一致性]的想法(http://docs.couchdb.org/en/2.0.0/intro/consistency.html#eventual-consistency)(並可能通過關係數據庫實現它)。根據我的經驗,它太嚴格和不方便,但你的里程可能會有所不同。 – saaj
這是單向複製還是雙向複製?即客戶端上的數據庫是隻讀的?如果它只是更新客戶端上的數據庫,那麼它就簡單得多。沒有碰撞。如果客戶端和服務器都對數據庫進行了修改,您是否可以對每個客戶端的數據進行分區?我問這個問題的原因是,看看是否有辦法避免碰撞,其中2個客戶端正在脫機更新同一行,然後同時上傳 - 你會如何協調: –