首页 > 后端开发 > Golang > 在'--network host”弃用后,如何使用 Go 和 Docker Compose 运行数据库迁移?

在'--network host”弃用后,如何使用 Go 和 Docker Compose 运行数据库迁移?

DDD
发布: 2024-12-16 11:20:10
原创
113 人浏览过

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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板