利用golang-migrate 和Docker Compose 進行資料庫遷移
golang-migrate 文件建議使用以下命令從指定的資料庫執行遷移目錄:
docker run -v {{ migration dir }}:/migrations --network host migrate/migrate -path=/migrations/ -database postgres://localhost:5432/database up 2
使此指令適應更新docker-compose語法不鼓勵使用--network,請如下修改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:
要連接到駐留在另一個容器而不是本地主機中的資料庫,網路是在docker -compose 中建立,允許服務使用別名進行通訊。在提供的配置中,您可以透過資料庫別名存取db服務。
連接字串進行相應修改:
postgres://mydbuser:mydbpwd@database:5432/mydbname?sslmode=disable
透過這些調整,您可以在golang中成功執行遷移-使用docker-compose 進行遷移,建立與另一個容器中的資料庫的連接。
以上是如何使用「golang-migrate」和 Docker Compose 進行資料庫遷移?的詳細內容。更多資訊請關注PHP中文網其他相關文章!