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

使用Makefile执行golang-migrate时出现postgresql驱动未知错误求助

问题原因及解决办法

这个错误是因为本地安装的migrate CLI工具没有包含PostgreSQL驱动支持。golang-migrate的默认安装包不会自动集成所有数据库驱动,必须在安装时通过build tags指定要包含的驱动。

解决步骤

1. 重新安装带PostgreSQL驱动的migrate工具

先卸载已安装的migrate(如果之前装过),然后执行以下命令安装包含PostgreSQL驱动的版本:

go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest

安装完成后,再重新运行make migrateup即可。

2. 替代方案:使用Docker镜像执行迁移

如果不想本地安装带驱动的migrate,可以直接使用官方提供的migrate Docker镜像,修改Makefile中的migrateup和migratedown命令:

migrateup:
    docker run --rm -v $(PWD)/database/postgres/migrations:/migrations migrate/migrate -path /migrations -database "$(DB_URL)" -verbose up

migratedown:
    docker run --rm -v $(PWD)/database/postgres/migrations:/migrations migrate/migrate -path /migrations -database "$(DB_URL)" -verbose down

这个镜像已经预安装了所有主流数据库驱动,无需额外配置。

3. 额外检查:确认DB_URL协议正确性

虽然不是本次报错的直接原因,但可以确认下DB_URL的协议头,golang-migrate同时支持postgresql://和postgres://两种格式,两种都可以正常使用,无需修改。

内容的提问来源于stack exchange,提问作者David Essien

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:35:30