首頁 > 後端開發 > Golang > 在「--network host」棄用後,如何使用 Go 和 Docker Compose 執行資料庫遷移?

在「--network host」棄用後,如何使用 Go 和 Docker Compose 執行資料庫遷移?

DDD
發布: 2024-12-16 11:20:10
原創
117 人瀏覽過

How to Run Database Migrations with Go and Docker Compose After the `--network host` Deprecation?

使用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板