情況:我正在開發一個大型啓動web項目,該項目經常投入生產,因此所有開發都非常快。我們有幾個環境 - 開發(本地),質量保證,舞臺和生產與當然數據庫中的不同數據(我們使用postgres)。我的日常工作是,在我開發一些新功能的同時,一些質量保證人員可以在其中一個環境中發現重要的錯誤,所以我必須修復它,或者至少看看有什麼不對。在Docker容器中的數據庫轉儲之間切換的方式
問題:從本地上下文切換到生產/ qa/stage,我通常在本地從這些環境中轉儲數據庫,然後執行調試。問題是,起初轉儲非常繁重,有時需要30分鐘才能下載並應用它,其次 - 當我將它轉儲到本地數據庫時,我放棄了本地的開發環境。
願望:能夠切換上下文本地快速
例:讓我們說我們有搬運工人容器的Web服務器,這是該樣品中鏈接到Postgres的集裝箱像docker-compose.yml
文件
version: '3'
services:
pg:
image: "mdillon/postgis"
hostname: pghost
ports:
- "5433:5432"
volumes:
- "~/pgdata:/var/lib/postgresql/data"
...
webserver:
image: "some_app_image"
links:
- pg:postgres
...
而且讓我們假裝這個網絡服務器真的很重,因此使用多個運行容器在內存使用和可讀性方面會是一個大問題。
問題:是否有任何優雅(或不)的方式來在不同的數據庫數據集之間進行快速切換?可能有不同的pgdata文件夾,或以某種方式鏈接幾個postgres容器(雖然我不知道它是可能的)
我假設你使用'pg'來訪問Web服務器上的數據庫。你不能把它指向數據庫遠程IP嗎? – eLRuLL
@eLRuLL是的,我正在使用pg訪問。據我所知,你的意思是指向真正的數據庫?我無法做到這一點,因爲它是一個生產數據..我需要改變它來檢查是什麼問題。在配置中儘可能以最少的改變切換數據是理想的 – lub0v