在我的internal/platform/database/database.go里
import (
"github.com/golang-migrate/migrate"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
)
func RunMigrations() error {
m, err := migrate.New(
"file://schema",
"postgres://postgres:postgres@localhost:5432/postgres?sslmode=disable")
if err != nil {
return errors.Wrap(err, "error creating migrations object")
}这个函数是从我的cmd/my-api/main.go调用的,如下所示:
import (
_ "github.com/golang-migrate/migrate/v4/database/postgres"
_ "github.com/golang-migrate/migrate/v4/source/file"
"github.com/jmoiron/sqlx"
_ "github.com/lib/pq"
"github.com/myrepo/myproject/internal/platform/database"
)
// =========================================================================
// Executing migrations
if err := database.RunMigrations(); err != nil {
log.Fatal(err)
}虽然我是在中导入驱动程序-两个文件,_ "github.com/lib/pq"
运行程序失败如下:
error creating migrations object: source driver: unknown driver file (forgotten import?)
exit status 1为什么会这样呢?
发布于 2020-03-28 19:20:46
golang-migrate似乎需要它自己版本的相应驱动程序(?)
下面的输入帮我解决了这个问题
_ "github.com/golang-migrate/migrate/v4/database/postgres"发布于 2020-04-01 00:20:45
导入以下内容时,将触发postgres驱动程序init函数,此函数将注册postgres驱动程序。
_ "github.com/golang-migrate/migrate/v4/database/postgres"你可以检查这个。https://www.calhoun.io/why-we-import-sql-drivers-with-the-blank-identifier/
https://stackoverflow.com/questions/60905192
复制相似问题