已经有几个答案,但他们似乎告诉我做我已经在做的事情,并且不要更深入地研究问题可能是什么。一点侦察。我试图让我的 Go 应用程序在启动时运行数据库迁移。我有一个在 docker 容器中运行的 Postgres 数据库。我可以使用我的数据库工具连接到它。我可以使用命令行从其位置运行迁移文件。但是,如果我按原样运行我的服务,我会得到:source driver: unknown driver postgres (forgotten import?)这是我的代码:package mainimport ( "database/sql" "log" "os" "github.com/golang-migrate/migrate/v4" _ "github.com/golang-migrate/migrate/v4/database/postgres" _ "github.com/golang-migrate/migrate/v4/source/file" _ "github.com/lib/pq" "github.com/joho/godotenv")func init() { if err := godotenv.Load(".env"); err != nil { log.Println("no .env file found") }}func main() { db_url := os.Getenv("POSTGRES_URL"); mig_url := os.Getenv("MIGRATION_URL") MustMigrateUp(db_url, mig_url) _, err := sql.Open("postgres", db_url) if err != nil { log.Fatal(err) }}func MustMigrateUp(db_url, mig_url string) { m, err := migrate.New( db_url, mig_url, ) println(os.Getenv("POSTGRES_URL")) if err != nil { log.Fatalln(err) } if err := m.Up(); err != nil { log.Fatalln(err) }}我很感激任何反馈!
1 回答
动漫人物
TA贡献1815条经验 获得超10个赞
migrate.New() 期望参数中的数据库 url 第二个。 https://godoc.org/github.com/golang-migrate/migrate#New
不要只在凌晨 3 点编码。
- 1 回答
- 0 关注
- 325 浏览
添加回答
举报
0/150
提交
取消
