feat: optional MySQL/MariaDB database driver for deployments that cannot use local SQLite
This commit is contained in:
1 parent
81e299f09a
commit
d752a61e52
35 files changed
+2896
-76
No files matched your search
+10
-4
@@ -12,6 +12,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"slices"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
@@ -44,6 +45,12 @@ var envDefaults = map[string]string{
|
||||
"ENVIRONMENT": "production",
|
||||
"PORT": "8080",
|
||||
"DB_FILE": "./data/renewcms.db",
|
||||
config.EnvDatabaseDriver: config.DefaultDatabaseDriver,
|
||||
"DB_PORT": config.DefaultDatabasePort,
|
||||
"DB_TLS": config.DefaultDatabaseTLS,
|
||||
"DB_MAX_OPEN_CONNS": config.DefaultMaxOpenConns,
|
||||
"DB_MAX_IDLE_CONNS": config.DefaultMaxIdleConns,
|
||||
"DB_CONN_MAX_LIFETIME_SECONDS": config.DefaultConnMaxLifetimeSeconds,
|
||||
"UPLOAD_DIR": "./data/uploads",
|
||||
"AUTH_RATE_LIMIT_MAX_ATTEMPTS": "5",
|
||||
"AUTH_RATE_LIMIT_WINDOW_SECONDS": "60",
|
||||
@@ -108,10 +115,9 @@ func applyEnvDefaults() {
|
||||
}
|
||||
|
||||
func ensureRequiredEnvVars() {
|
||||
for _, envVar := range requiredEnvVars {
|
||||
if _, isSet := os.LookupEnv(envVar); !isSet {
|
||||
panic(fmt.Sprintf("Environment variable %s is not set", envVar))
|
||||
}
|
||||
required := slices.Concat(requiredEnvVars, config.DatabaseRequiredEnvVars(os.Getenv(config.EnvDatabaseDriver)))
|
||||
if err := config.MissingEnvVarError(required, os.LookupEnv); err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user