postgresql - golang-migrate 找不到 postgres 驱动程序
问题描述
在我的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")
}
此函数从 my 调用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)
}
虽然我在两个文件中都导入了postgres
驱动程序,_ "github.com/lib/pq"
运行程序失败如下:
error creating migrations object: source driver: unknown driver file (forgotten import?)
exit status 1
这是为什么?
解决方案
好像golang-migrate
需要自己版本的对应驱动(?)
以下导入为我解决了
_ "github.com/golang-migrate/migrate/v4/database/postgres"
推荐阅读
- android - 改造响应返回“NumberFormatexception:空字符串”
- javascript - 反应 useState 不是一个函数
- api - 是否可以使用 Word Javascript API 刷新文档的字段?
- css - 从 Angular 文件夹中删除未使用的 component.scss 文件
- kotlin - kotlin 接口、密封类和泛型类型使用(在接口函数中使用泛型类型的子类)
- javascript - 切换汉堡菜单 Javascript
- python - 使用 Jupiter 笔记本在 Python 中安装包的麻烦
- c# - 从 JArray 中获取唯一的列值
- javascript - 前一天返回我的功能
- c++ - C ++中相互转换不同签名类型的最佳方法?