使用 Go 和 Docker-Compose 遷移資料庫
使用 golang-migrate 工具執行遷移可以幫助確保資料庫架構一致性。然而,隨著 Docker-Compose 中 --network host 的棄用,您在執行遷移時可能會面臨挑戰。本文探討如何適應更新的語法以及如何連接到駐留在單獨容器中的資料庫。
適應新的Docker-Compose 語法
執行沒有--network host 的遷移,您可以將以下設定新增至docker-compose.yml 檔案:
db: image: postgres networks: new: aliases: - database environment: POSTGRES_DB: mydbname POSTGRES_USER: mydbuser POSTGRES_PASSWORD: mydbpwd ports: - "5432" migrate: image: migrate/migrate networks: - new volumes: - .:/migrations command: ["-path", "/migrations", "-database", "postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable", "up", "3"] links: - db networks: new:
中在此配置中,建立了一個名為new的網絡,並且遷移服務透過資料庫別名連結到 db 服務。
連接到遠端資料庫
連接對於單獨容器中的資料庫,請在連接字串中使用以下格式:
"postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable"
這裡,database 是網路中定義的別名配置。這允許您連接到遠端資料庫,就像它在本地運行一樣。
以上是在「--network host」棄用後,如何使用 Go 和 Docker Compose 執行資料庫遷移?的詳細內容。更多資訊請關注PHP中文網其他相關文章!