首页 > 后端开发 > Golang > 如何使用'golang-migrate”和 Docker Compose 进行数据库迁移?

如何使用'golang-migrate”和 Docker Compose 进行数据库迁移?

Mary-Kate Olsen
发布: 2024-12-21 11:04:16
原创
361 人浏览过

How to Use `golang-migrate` with Docker Compose for Database Migrations?

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板