From 0aff640953faa944fcff7a4507c4b39e808f17be Mon Sep 17 00:00:00 2001 From: xuans Date: Wed, 16 Sep 2026 12:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=87=AD=E6=8D=AE=E5=BC=95=E7=94=A8=E9=85=8D=E7=BD=AE=E9=AA=A8?= =?UTF-8?q?=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/config/config.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backend/internal/config/config.go b/backend/internal/config/config.go index 23f1c0f..42790e4 100644 --- a/backend/internal/config/config.go +++ b/backend/internal/config/config.go @@ -59,6 +59,7 @@ type WebConfig struct { type DatabaseConfig struct { Driver string `json:"driver"` DSN string `json:"dsn"` + CredentialRef string `json:"credential_ref"` MaxOpenConns int `json:"max_open_conns"` MaxIdleConns int `json:"max_idle_conns"` ConnMaxLifetimeMins int `json:"conn_max_lifetime_mins"` @@ -251,6 +252,7 @@ func (c *Config) ApplyEnvironment() error { {"SCERT_WEB_PUBLIC_IP", &c.Web.PublicIP}, {"SCERT_DATABASE_DRIVER", &c.Database.Driver}, {"SCERT_DATABASE_DSN", &c.Database.DSN}, + {"SCERT_DATABASE_CREDENTIAL_REF", &c.Database.CredentialRef}, {"SCERT_ACME_ENVIRONMENT", &c.ACME.Environment}, {"SCERT_ACME_ACCOUNT_EMAIL", &c.ACME.AccountEmail}, {"SCERT_DNS_PROVIDER", &c.DNS.Provider}, @@ -329,6 +331,9 @@ func (c *Config) Normalize() { if c.Server.HTTPSMode == "" { c.Server.HTTPSMode = "direct" } + c.Database.Driver = strings.ToLower(strings.TrimSpace(c.Database.Driver)) + c.Database.DSN = strings.TrimSpace(c.Database.DSN) + c.Database.CredentialRef = strings.TrimSpace(c.Database.CredentialRef) if c.Web.Hostname == "" && c.Web.PublicIP == "" && !c.SetupReady { c.Web.Enabled = true } @@ -467,7 +472,7 @@ func (c Config) Validate() error { if c.Server.HTTPSMode != "direct" && c.Server.HTTPSMode != "proxy" { return fmt.Errorf("HTTPS 模式无效:%s", c.Server.HTTPSMode) } - if c.Database.Driver != "sqlite" && c.Database.Driver != "mysql" { + if c.Database.Driver != "sqlite" && c.Database.Driver != "mysql" && c.Database.Driver != "postgres" { return fmt.Errorf("数据库驱动无效:%s", c.Database.Driver) } if strings.TrimSpace(c.Database.DSN) == "" {