From 1f80f6249ec9e34ad0c330f267e64abebe518a70 Mon Sep 17 00:00:00 2001 From: engigu Date: Mon, 16 Mar 2026 09:00:44 +0800 Subject: [PATCH] fix: logs viewer scoller --- configs/config.example.ini | 5 +- docs/guide/configuration.md | 7 +- internal/database/database.go | 7 +- web/src/components/LogTerminal.vue | 143 +++++++++------------------- web/src/views/history/History.vue | 7 +- web/src/views/history/LogViewer.vue | 10 +- 6 files changed, 65 insertions(+), 114 deletions(-) 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 @@ 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 @@