diff --git a/configs/config.example.ini b/configs/config.example.ini
index 98304d0..947b029 100644
--- a/configs/config.example.ini
+++ b/configs/config.example.ini
@@ -22,8 +22,9 @@ password =
dbname = baihu
# 数据库文件路径 (仅 sqlite)
path = data/baihu.db
-# 数据库 DSN (仅 mysql/mariadb, 如果设置则优先使用。注意:需同时将 type 设置为 mysql)
-# 例如: user:password@unix(/var/run/mysqld/mysqld.sock)/dbname?charset=utf8mb4&parseTime=True&loc=Local
+# 数据库 DSN (仅 mysql/postgres, 如果设置则优先使用。注意:需同时将 type 设置为 mysql 或 postgres)
+# 例如 (MySQL): user:password@unix(/var/run/mysqld/mysqld.sock)/dbname?charset=utf8mb4&parseTime=True&loc=Local
+# 例如 (Postgres): postgres://user:password@localhost:5432/dbname?sslmode=disable
dsn =
# 表前缀
table_prefix = baihu_
diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md
index feee49c..c2411f0 100644
--- a/docs/guide/configuration.md
+++ b/docs/guide/configuration.md
@@ -20,7 +20,7 @@
| `BH_DB_PASSWORD` | database.password | 数据库密码 | - |
| `BH_DB_NAME` | database.dbname | 数据库库名 | baihu |
| `BH_DB_PATH` | database.path | SQLite 物理文件存储路径 | ./data/baihu.db |
-| `BH_DB_DSN` | database.dsn | 数据库 DSN (仅 mysql, 优先级高。**需同时设置 type=mysql**) | - |
+| `BH_DB_DSN` | database.dsn | 数据库 DSN (仅 mysql/postgres, 优先级高。**需对应设置 type**) | - |
| `BH_DB_TABLE_PREFIX` | database.table_prefix | 数据库表前缀 | baihu_ |
---
@@ -46,9 +46,10 @@ url_prefix = /baihu
[database]
type = sqlite
path = /app/data/baihu.db
-# mysql 连接示例 (Unix Socket):
-# 注意:使用 dsn 时,type 必须设为 mysql
+# 数据库连接示例 (Unix Socket / DSN):
+# 注意:使用 dsn 时,type 必须设为 mysql 或 postgres
# dsn = user:password@unix(/var/run/mysqld/mysqld.sock)/dbname?charset=utf8mb4&parseTime=True&loc=Local
+# dsn = postgres://user:password@localhost:5432/dbname?sslmode=disable
table_prefix = baihu_
```
diff --git a/internal/database/database.go b/internal/database/database.go
index fc71c09..ab4083a 100644
--- a/internal/database/database.go
+++ b/internal/database/database.go
@@ -48,8 +48,11 @@ func Init(cfg *Config) error {
}
dialector = mysql.Open(dsn)
case "postgres":
- dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable TimeZone=Asia/Shanghai",
- cfg.Host, cfg.Port, cfg.User, cfg.Password, cfg.DBName)
+ dsn := cfg.DSN
+ if dsn == "" {
+ dsn = fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable TimeZone=Asia/Shanghai",
+ cfg.Host, cfg.Port, cfg.User, cfg.Password, cfg.DBName)
+ }
dialector = postgres.Open(dsn)
default:
return fmt.Errorf("unsupported database type: %s", cfg.Type)
diff --git a/web/src/components/LogTerminal.vue b/web/src/components/LogTerminal.vue
index a4972fd..b3d6bf9 100644
--- a/web/src/components/LogTerminal.vue
+++ b/web/src/components/LogTerminal.vue
@@ -1,22 +1,6 @@
+ :style="{ fontSize: fontSize + 'px' }"
+ >
diff --git a/web/src/views/history/History.vue b/web/src/views/history/History.vue
index a957075..6c76000 100644
--- a/web/src/views/history/History.vue
+++ b/web/src/views/history/History.vue
@@ -1,5 +1,5 @@