From 2766e8034667526a83337aa44823ef69046b8398 Mon Sep 17 00:00:00 2001 From: DDSRem <73049927+DDSRem@users.noreply.github.com> Date: Sat, 23 Aug 2025 18:36:11 +0800 Subject: [PATCH] fix(database): use logger as log output Co-Authored-By: Aqr-K <95741669+Aqr-K@users.noreply.github.com> --- database/versions/5b3355c964bb_2_2_0.py | 19 ++++++++++--------- database/versions/e2dbe1421fa4_2_0_3.py | 3 ++- database/versions/ecf3c693fdf3_2_0_5.py | 8 ++++---- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/database/versions/5b3355c964bb_2_2_0.py b/database/versions/5b3355c964bb_2_2_0.py index 4248810d..58f1402f 100644 --- a/database/versions/5b3355c964bb_2_2_0.py +++ b/database/versions/5b3355c964bb_2_2_0.py @@ -8,6 +8,7 @@ Create Date: 2025-08-19 12:27:08.451371 import sqlalchemy as sa from alembic import op +from app.log import logger from app.core.config import settings # revision identifiers, used by Alembic. @@ -41,7 +42,7 @@ def fix_postgresql_sequences(): """)) tables = [row[0] for row in result.fetchall()] - print(f"发现 {len(tables)} 个表需要检查序列") + logger.info(f"发现 {len(tables)} 个表需要检查序列") for table_name in tables: fix_table_sequence(connection, table_name) @@ -54,7 +55,7 @@ def fix_table_sequence(connection, table_name): try: # 跳过alembic_version表,它没有id列 if table_name == 'alembic_version': - print(f"跳过表 {table_name},这是Alembic版本表") + logger.debug(f"跳过表 {table_name},这是Alembic版本表") return # 检查表是否有id列 @@ -67,22 +68,22 @@ def fix_table_sequence(connection, table_name): id_column = result.fetchone() if not id_column: - print(f"表 {table_name} 没有id列,跳过") + logger.debug(f"表 {table_name} 没有id列,跳过") return is_identity, column_default = id_column # 检查是否已经是Identity类型 if is_identity == 'YES' or (column_default and 'GENERATED BY DEFAULT AS IDENTITY' in column_default): - print(f"表 {table_name} 的id列已经是Identity类型,跳过") + logger.debug(f"表 {table_name} 的id列已经是Identity类型,跳过") return # 检查是否有序列 - print(f"表 {table_name} 存在序列,需要修复") + logger.info(f"表 {table_name} 存在序列,需要修复") convert_to_identity(connection, table_name) except Exception as e: - print(f"修复表 {table_name} 序列时出错: {e}") + logger.error(f"修复表 {table_name} 序列时出错: {e}") # 回滚当前事务,避免影响后续操作 connection.rollback() @@ -106,12 +107,12 @@ def convert_to_identity(connection, table_name): ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY (START WITH {next_value}) """)) - print(f"表 {table_name} 序列已转换为Identity,起始值为 {next_value}") + logger.info(f"表 {table_name} 序列已转换为Identity,起始值为 {next_value}") except Exception as e: - print(f"转换表 {table_name} 序列时出错: {e}") # 如果是已经存在的Identity错误,则忽略 if "already an identity column" in str(e): - print(f"表 {table_name} 的id列已经是Identity类型,忽略此错误") + logger.warn(f"表 {table_name} 的id列已经是Identity类型,忽略此错误: {e}") return + logger.error(f"转换表 {table_name} 序列时出错: {e}") raise diff --git a/database/versions/e2dbe1421fa4_2_0_3.py b/database/versions/e2dbe1421fa4_2_0_3.py index 5df2dc50..b4fb29ad 100644 --- a/database/versions/e2dbe1421fa4_2_0_3.py +++ b/database/versions/e2dbe1421fa4_2_0_3.py @@ -10,6 +10,7 @@ import contextlib from alembic import op import sqlalchemy as sa +from app.log import logger from app.db import SessionFactory from app.db.models import UserConfig @@ -69,7 +70,7 @@ def upgrade() -> None: existing_type=sa.String(), type_=sa.JSON()) except Exception as e: - print(f"Could not alter column {column_name} in table {table}: {e}") + logger.error(f"Could not alter column {column_name} in table {table}: {e}") with SessionFactory() as db: UserConfig.truncate(db) diff --git a/database/versions/ecf3c693fdf3_2_0_5.py b/database/versions/ecf3c693fdf3_2_0_5.py index fec107a7..f6787866 100644 --- a/database/versions/ecf3c693fdf3_2_0_5.py +++ b/database/versions/ecf3c693fdf3_2_0_5.py @@ -10,6 +10,8 @@ import contextlib from alembic import op import sqlalchemy as sa +from app.log import logger + # revision identifiers, used by Alembic. revision = 'ecf3c693fdf3' @@ -22,9 +24,9 @@ def upgrade() -> None: conn = op.get_bind() inspector = sa.inspect(conn) table_name = 'subscribehistory' + columns = inspector.get_columns(table_name) try: - columns = inspector.get_columns(table_name) sites_col = next((c for c in columns if c['name'] == 'sites'), None) # 如果 'sites' 列存在且类型不是 JSON,则进行修改 if sites_col and not isinstance(sites_col['type'], sa.JSON): @@ -38,9 +40,7 @@ def upgrade() -> None: existing_type=sa.String(), type_=sa.JSON()) except Exception as e: - print(f"Could not alter column 'sites' in table {table_name}: {e}") - - columns = inspector.get_columns(table_name) + logger.error(f"Could not alter column 'sites' in table {table_name}: {e}") if not any(c['name'] == 'custom_words' for c in columns): op.add_column(table_name, sa.Column('custom_words', sa.String(), nullable=True))