You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过migrate/migrate镜像使用GitHub中的SQL文件执行迁移?

问题解决:migrate服务的GitHub源地址格式错误

你的migrate服务command配置的核心问题是GitHub源地址格式不正确——你使用的是GitHub网页的blob链接,而migrate/migrate镜像需要的是能直接读取迁移文件的源路径,而非HTML页面链接。

正确的配置方案

有两种可行的修改方式,任选其一即可:

方式1:使用migrate原生支持的GitHub源协议

migrate工具支持直接通过github://协议访问GitHub仓库的目录,格式为:

github://<用户名>/<仓库名>/<迁移文件目录路径>

修改后的migrate服务command如下:

command: "-source github://guimassoqueto/db-migrations/migrations -database postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:${POSTGRES_PORT}/${POSTGRES_DB}?sslmode=disable -verbose up"

注:如果是私有仓库,需要添加GitHub访问令牌,格式为github://<token>@<用户名>/<仓库名>/<路径>

方式2:使用GitHub Raw文件目录链接

如果不想用GitHub协议,也可以指向仓库中迁移文件目录的raw内容地址,格式为:

https://raw.githubusercontent.com/<用户名>/<仓库名>/<分支名>/<迁移文件目录>/

修改后的command如下:

command: "-source https://raw.githubusercontent.com/guimassoqueto/db-migrations/main/migrations/ -database postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:${POSTGRES_PORT}/${POSTGRES_DB}?sslmode=disable -verbose up"

额外优化建议

  • 移除links: - postgres配置:在Docker Compose中,同一网络下的容器可以直接通过服务名(postgres)通信,links是旧版语法,无需保留。

验证修改

修改后重新启动服务:

docker-compose up -d migrate

查看migrate容器日志确认迁移执行情况:

docker logs migrate

内容的提问来源于stack exchange,提问作者Guilherme Massoqueto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 16:32:26