feat: 更新数据库表结构,重命名并优化字段以支持新功能

This commit is contained in:
晓丰 2025-06-29 10:52:07 +08:00
parent e2245d86e1
commit b6ffe17404

64
DB.py
View File

@ -19,7 +19,6 @@ MYSQL_URL = (
"mysql+pymysql://db_vidcon:rexdK4fhCCiRE4BZ"
"@192.144.230.75:3306/db_vidcon?charset=utf8mb4"
)
_engine = create_engine(
MYSQL_URL,
pool_size=20, max_overflow=10,
@ -28,48 +27,58 @@ _engine = create_engine(
)
_meta = MetaData()
video_op = Table("sh_dm_video_op_v2", _meta,
Column("v_id", BigInteger, primary_key=True),
# 操作记录表 (sh_dm_video_op_v3)
video_op = Table("sh_dm_video_op_v3", _meta,
Column("id", Integer, primary_key=True, autoincrement=True),
Column("v_id", String(64)),
Column("v_xid", String(64)),
Column("a_id", Integer),
Column("a_id", Integer, default=0),
Column("level", Integer),
Column("name_title", String(255)),
Column("keyword", String(255)),
Column("rn", String(8)),
Column("history_status", String(32)),
Column("name_title", String(100)),
Column("keyword", String(100)),
Column("rn", String(50)),
Column("history_status", String(100)),
Column("is_repeat", Integer),
Column("is_piracy", String(2), default='3'),
Column("sort", Integer),
Column("createtime", Integer),
Column("updatetime", Integer),
Column("batch", BigInteger),
Column("operatetime", Integer),
Column("batch", Integer),
Column("machine", Integer),
Column("ts_status", Integer, default=1),
)
video = Table("sh_dm_video_v2", _meta,
Column("v_id", BigInteger, primary_key=True),
# 视频表 (sh_dm_video_v3)
video = Table("sh_dm_video_v3", _meta,
Column("id", Integer, primary_key=True, autoincrement=True),
Column("v_id", String(64)),
Column("v_xid", String(64)),
Column("rn", String(8)),
Column("v_name", String(255)),
Column("title", String(255)),
Column("link", Text),
Column("edition", String(64)),
Column("duration", Integer),
Column("public_time", String(32)),
Column("cover_pic", Text),
Column("v_name", String(255), nullable=False),
Column("title", String(255), nullable=False),
Column("link", String(255), nullable=False),
Column("is_piracy", Integer, default=3),
Column("edition", String(255), default=''),
Column("duration", String(11), default='0'),
Column("watch_number", Integer, default=0),
Column("follow_number", Integer, default=0),
Column("video_number", Integer, default=0),
Column("public_time", DateTime),
Column("cover_pic", String(255)),
Column("sort", Integer),
Column("history_status", String(255)),
Column("u_xid", String(64)),
Column("u_id", BigInteger),
Column("u_pic", Text),
Column("u_id", String(100)),
Column("u_pic", String(255)),
Column("u_name", String(255)),
Column("status", Integer),
Column("status", Integer, default=1),
Column("ts_status", Integer, default=1),
Column("createtime", Integer),
Column("updatetime", Integer),
Column("watch_number", Integer),
Column("follow_number", Integer),
Column("video_number", Integer),
Column("is_repeat", Integer),
Column("is_repeat", Integer, default=0),
Column("operatetime", Integer),
)
video_author = Table(
"sh_dm_video_author",
_meta,
@ -86,7 +95,6 @@ video_author = Table(
Column("update_time", Integer, nullable=True, comment="更新时间UNIX 时间戳)"),
)
def mysql_retry(max_retries: int = 3, base_delay: float = 2.0):
"""
装饰器工厂捕获 InterfaceError 后断线重连并重试