我在.env
文件中获得了数据库设置。每当我写source .env
时,它都不起作用,我不知道为什么,在其他应用程序中,它工作得很好。我现在收到这个错误
`` is not officially supported, running under compatibility mode.
2021/04/15 16:57:03 sql: unknown driver "" (forgotten import?)
exit status 1
我的进口:
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
dialect := os.Getenv("DIALECT")
host := os.Getenv("HOST")
dbPort := os.Getenv("DBPORT")
user := os.Getenv("USER")
dbName := os.Getenv("NAME")
password := os.Getenv("PASSWORD")
dbURI := fmt.Sprintf("host=%s user=%s dbname=%s password=%s port=%s", host, user, dbName, password, dbPort)
每当我提供dialect := "postgres"
等设置时,它都能很好地运行。但它不能与env文件一起工作,为什么我的应用程序找不到它?
文件夹结构
api/
.env
go.mod
go.sum
main.go
显然,在执行应用程序之前,没有在环境空间中设置变量。在运行应用程序之前,您可以通过查看设置的环境变量来自行测试。os.getenv()
也不会为您提供.env
文件源,因此您需要手动执行此操作,或者使用将为您执行此操作的库(例如godotenv(。