Go应用程序未检测到.env,并且不会连接到db

Go应用程序未检测到.env,并且不会连接到db,go,Go,我在.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.

我在.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"
方言:=os.getenvdial 主机:=os.GetenvHOST dbPort:=os.GetenvDBPORT 用户:=os.GetenvUSER dbName:=os.GetenvNAME 密码:=os.GetenvPASSWORD dbURI:=fmt.Sprintfhost=%s用户=%s数据库名称=%s密码=%s端口=%s,主机,用户,数据库名称,密码,数据库端口 它运行良好,每当我提供方言:=postgres等设置时。但它不能与env文件一起工作,为什么我的应用程序找不到它

文件夹结构

api/
   .env
   go.mod
   go.sum
   main.go

显然,在执行应用程序之前,没有在环境空间中设置变量。在运行应用程序之前,您可以通过查看设置的环境变量来测试这一点。os.getenv也不会为您生成.env文件,因此您需要手动执行此操作,或者使用一个库来执行此操作,例如..

每当我编写source.env时,它都不工作意味着什么?你有错误吗?档案里有什么?这是一个基本的Linux shell问题,不是Go问题-您的问题不是Go,而是使用bash脚本设置环境变量。可能您必须在源环境文件中设置。env文件不会神奇地填充您的环境,Go代码也不会神奇地拾取这两个问题。env文件及其魔力在unix世界中没有一席之地。