0

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 中运行良好。

4

0 回答 0