From 15833f94cf0b970f91f44e5e8dc7e41f7b627251 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 19 Aug 2025 11:40:34 +0800 Subject: [PATCH] fix db --- app/db/__init__.py | 9 ++++++--- app/db/models/downloadhistory.py | 4 ++-- app/db/models/mediaserver.py | 2 +- app/db/models/message.py | 2 +- app/db/models/plugindata.py | 2 +- app/db/models/site.py | 2 +- app/db/models/siteicon.py | 2 +- app/db/models/sitestatistic.py | 2 +- app/db/models/siteuserdata.py | 2 +- app/db/models/subscribe.py | 2 +- app/db/models/subscribehistory.py | 2 +- app/db/models/systemconfig.py | 2 +- app/db/models/transferhistory.py | 2 +- app/db/models/user.py | 2 +- app/db/models/userconfig.py | 2 +- app/db/models/workflow.py | 2 +- 16 files changed, 22 insertions(+), 19 deletions(-) diff --git a/app/db/__init__.py b/app/db/__init__.py index df056199..fc303724 100644 --- a/app/db/__init__.py +++ b/app/db/__init__.py @@ -9,13 +9,16 @@ from sqlalchemy.orm import Session, as_declarative, declared_attr, scoped_sessio from app.core.config import settings -def get_id_column(): +def get_id_column(table_name: str = None): """ 根据数据库类型返回合适的ID列定义 """ if settings.DB_TYPE.lower() == "postgresql": - # PostgreSQL使用SERIAL类型 - return Column(Integer, primary_key=True, index=True) + # PostgreSQL使用显式序列,确保序列正确创建 + if table_name: + return Column(Integer, Sequence(f'{table_name}_id_seq'), primary_key=True, index=True) + else: + return Column(Integer, Sequence('id_seq'), primary_key=True, index=True) else: # SQLite使用Sequence return Column(Integer, Sequence('id'), primary_key=True, index=True) diff --git a/app/db/models/downloadhistory.py b/app/db/models/downloadhistory.py index 11d00294..4ac6a2a0 100644 --- a/app/db/models/downloadhistory.py +++ b/app/db/models/downloadhistory.py @@ -12,7 +12,7 @@ class DownloadHistory(Base): """ 下载历史记录 """ - id = get_id_column() + id = get_id_column('downloadhistory') # 保存路径 path = Column(String, nullable=False, index=True) # 类型 电影/电视剧 @@ -188,7 +188,7 @@ class DownloadFiles(Base): """ 下载文件记录 """ - id = get_id_column() + id = get_id_column('downloadfiles') # 下载器 downloader = Column(String) # 下载任务Hash diff --git a/app/db/models/mediaserver.py b/app/db/models/mediaserver.py index c15b5d05..01749af3 100644 --- a/app/db/models/mediaserver.py +++ b/app/db/models/mediaserver.py @@ -13,7 +13,7 @@ class MediaServerItem(Base): """ 媒体服务器媒体条目表 """ - id = get_id_column() + id = get_id_column('mediaserveritem') # 服务器类型 server = Column(String) # 媒体库ID diff --git a/app/db/models/message.py b/app/db/models/message.py index 6fcad3de..0c740890 100644 --- a/app/db/models/message.py +++ b/app/db/models/message.py @@ -11,7 +11,7 @@ class Message(Base): """ 消息表 """ - id = get_id_column() + id = get_id_column('message') # 消息渠道 channel = Column(String) # 消息来源 diff --git a/app/db/models/plugindata.py b/app/db/models/plugindata.py index 3e8e46dd..d2585b90 100644 --- a/app/db/models/plugindata.py +++ b/app/db/models/plugindata.py @@ -8,7 +8,7 @@ class PluginData(Base): """ 插件数据表 """ - id = get_id_column() + id = get_id_column('plugindata') plugin_id = Column(String, nullable=False, index=True) key = Column(String, index=True, nullable=False) value = Column(JSON) diff --git a/app/db/models/site.py b/app/db/models/site.py index cbfc3bc7..ecfefc80 100644 --- a/app/db/models/site.py +++ b/app/db/models/site.py @@ -11,7 +11,7 @@ class Site(Base): """ 站点表 """ - id = get_id_column() + id = get_id_column('site') # 站点名 name = Column(String, nullable=False) # 域名Key diff --git a/app/db/models/siteicon.py b/app/db/models/siteicon.py index 05f7593d..fdd13235 100644 --- a/app/db/models/siteicon.py +++ b/app/db/models/siteicon.py @@ -9,7 +9,7 @@ class SiteIcon(Base): """ 站点图标表 """ - id = get_id_column() + id = get_id_column('siteicon') # 站点名称 name = Column(String, nullable=False) # 域名Key diff --git a/app/db/models/sitestatistic.py b/app/db/models/sitestatistic.py index f2874cff..2f0b9fbf 100644 --- a/app/db/models/sitestatistic.py +++ b/app/db/models/sitestatistic.py @@ -11,7 +11,7 @@ class SiteStatistic(Base): """ 站点统计表 """ - id = get_id_column() + id = get_id_column('sitestatistic') # 域名Key domain = Column(String, index=True) # 成功次数 diff --git a/app/db/models/siteuserdata.py b/app/db/models/siteuserdata.py index 17b6002c..8e137b4c 100644 --- a/app/db/models/siteuserdata.py +++ b/app/db/models/siteuserdata.py @@ -12,7 +12,7 @@ class SiteUserData(Base): """ 站点数据表 """ - id = get_id_column() + id = get_id_column('siteuserdata') # 站点域名 domain = Column(String, index=True) # 站点名称 diff --git a/app/db/models/subscribe.py b/app/db/models/subscribe.py index a3dd2d44..7d2c89ea 100644 --- a/app/db/models/subscribe.py +++ b/app/db/models/subscribe.py @@ -12,7 +12,7 @@ class Subscribe(Base): """ 订阅表 """ - id = get_id_column() + id = get_id_column('subscribe') # 标题 name = Column(String, nullable=False, index=True) # 年份 diff --git a/app/db/models/subscribehistory.py b/app/db/models/subscribehistory.py index 37d1ca66..0d9e587b 100644 --- a/app/db/models/subscribehistory.py +++ b/app/db/models/subscribehistory.py @@ -11,7 +11,7 @@ class SubscribeHistory(Base): """ 订阅历史表 """ - id = get_id_column() + id = get_id_column('subscribehistory') # 标题 name = Column(String, nullable=False, index=True) # 年份 diff --git a/app/db/models/systemconfig.py b/app/db/models/systemconfig.py index c7b3dac2..1768d946 100644 --- a/app/db/models/systemconfig.py +++ b/app/db/models/systemconfig.py @@ -9,7 +9,7 @@ class SystemConfig(Base): """ 配置表 """ - id = get_id_column() + id = get_id_column('systemconfig') # 主键 key = Column(String, index=True) # 值 diff --git a/app/db/models/transferhistory.py b/app/db/models/transferhistory.py index a72695fb..e1be25ea 100644 --- a/app/db/models/transferhistory.py +++ b/app/db/models/transferhistory.py @@ -12,7 +12,7 @@ class TransferHistory(Base): """ 整理记录 """ - id = get_id_column() + id = get_id_column('transferhistory') # 源路径 src = Column(String, index=True) # 源存储 diff --git a/app/db/models/user.py b/app/db/models/user.py index 91f37f9c..1a5dde73 100644 --- a/app/db/models/user.py +++ b/app/db/models/user.py @@ -10,7 +10,7 @@ class User(Base): 用户表 """ # ID - id = get_id_column() + id = get_id_column('user') # 用户名,唯一值 name = Column(String, index=True, nullable=False) # 邮箱 diff --git a/app/db/models/userconfig.py b/app/db/models/userconfig.py index b8b6eedf..c2373c4e 100644 --- a/app/db/models/userconfig.py +++ b/app/db/models/userconfig.py @@ -8,7 +8,7 @@ class UserConfig(Base): """ 用户配置表 """ - id = get_id_column() + id = get_id_column('userconfig') # 用户名 username = Column(String, index=True) # 配置键 diff --git a/app/db/models/workflow.py b/app/db/models/workflow.py index 69bf4f5f..baa22a6f 100644 --- a/app/db/models/workflow.py +++ b/app/db/models/workflow.py @@ -12,7 +12,7 @@ class Workflow(Base): 工作流表 """ # ID - id = get_id_column() + id = get_id_column('workflow') # 名称 name = Column(String, index=True, nullable=False) # 描述