首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >戈朗-迁移找不到postgres的司机

戈朗-迁移找不到postgres的司机
EN

Stack Overflow用户
提问于 2020-03-28 18:31:41
回答 2查看 4.7K关注 0票数 4

在我的internal/platform/database/database.go

代码语言:javascript
复制
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调用的,如下所示:

代码语言:javascript
复制
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"

运行程序失败如下:

代码语言:javascript
复制
error creating migrations object: source driver: unknown driver file (forgotten import?)
exit status 1

为什么会这样呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-28 19:20:46

golang-migrate似乎需要它自己版本的相应驱动程序(?)

下面的输入帮我解决了这个问题

代码语言:javascript
复制
_ "github.com/golang-migrate/migrate/v4/database/postgres"
票数 6
EN

Stack Overflow用户

发布于 2020-04-01 00:20:45

导入以下内容时,将触发postgres驱动程序init函数,此函数将注册postgres驱动程序。

代码语言:javascript
复制
_ "github.com/golang-migrate/migrate/v4/database/postgres"

你可以检查这个。https://www.calhoun.io/why-we-import-sql-drivers-with-the-blank-identifier/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60905192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档