GO 应用程序无法使用 Windows 中的环境变量连接到本地 PostgreSQL 数据库。
使用以下类似设置环境变量windows command prompt
后:
set DATABASE_HOST=localhost
set DATABASE_USER=postgres
set DATABASE_PASSWORD=password
set DATABASE_NAME=db
set DATABASE_PORT=5432
尝试使用以下命令运行 go 应用程序:
go run main.go
我收到以下错误:
←[0m←[31m[error] ←[0mfailed to initialize database, got error cannot parse `host= user= password=xxxxx dbname= port=`: invalid port (strconv.ParseUint: parsing "": invalid syntax)
panic: Failed to connect to database!
goroutine 1 [running]:
C:/Users/user/go/src/code/db.go:12 +0xb4
这是 db.go 的代码
import (
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func ConnectDatabase(dsn string) *gorm.DB {
database, err := gorm.Open(postgres.Open(dsn))
if err != nil {
panic("Failed to connect to database!")
}
return database
}
但是当echo
命令被尝试时,它会在命令提示符中返回正确的值。示例echo %DATABASE_PORT%
命令返回5432
.
注意:main.go 具有与初始化数据库表和模式的代码相关的数据库迁移,并且在 Linux 和 Mac OS 中运行良好。