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