golang使用终端命令迁移未知驱动程序postgresql

问题描述

当我尝试使用终端命令(migrate -path scripts -database "postgresql://postgres:postgres@localhost:5439/basename?sslmode=disable" -verbose down)进行基础迁移时,出现错误error: database driver: unkNown driver postgresql (forgotten import?)。如何解决

解决方法

我认为您需要使用特定标签进行构建以添加特定驱动程序。

查看文档 https://github.com/golang-migrate/migrate/tree/master/cmd/migrate#with-go-toolchain

$ go get -u -d github.com/golang-migrate/migrate/cmd/migrate
$ cd $GOPATH/src/github.com/golang-migrate/migrate/cmd/migrate
$ git checkout $TAG  # e.g. v4.1.0
$ go build -tags 'postgres' -ldflags="-X main.Version=$(git describe --tags)" -o $GOPATH/bin/migrate $GOPATH/src/github.com/golang-migrate/migrate/cmd/migrate