我正在尝试学习如何使用 gorm,但面临着一个小而愚蠢的问题。当我尝试连接到数据库时,程序向我抛出以下错误:
[error] failed to initialize database, got error cannot parse `host=localhost, user=postgres, password=xxxxx dbname=astra, port=5432, sslmode=disable, TimeZone=UTC`: failed to configure TLS (sslmode is invalid)
老实说,我不知道如何解决它以及可能出现什么问题。
这是我的代码:
func setupDb() {
dsn := "host=localhost, user=postgres, password=postgres, dbname=astra, port=5432, sslmode=disable, TimeZone=UTC"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
if err != nil {
logger_config.ErrorLogger.Println("Couldn't connect to database")
}
}
那么问题出在哪里呢?如果你知道,请告诉我。我真的很感激!
正确答案
连接字符串应为 host=localhost user=postgres 密码=postgres dbname=astra port=5432 sslmode=disable TimeZone=UTC
在 gorm 文档中的此处进行了演示
这实际上是格式之一PostgreSQL 接受连接字符串。