From c81f26ddad3864222069b23de2b14e945573ebc3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Mon, 25 Aug 2025 13:56:21 +0000 Subject: [PATCH] Remove downgrade methods for PostgreSQL and SQLite userid migration Co-authored-by: jxxghp --- database/versions/a946dae52526_2_2_1.py | 115 +----------------------- 1 file changed, 1 insertion(+), 114 deletions(-) diff --git a/database/versions/a946dae52526_2_2_1.py b/database/versions/a946dae52526_2_2_1.py index 3560fe68..46c69dde 100644 --- a/database/versions/a946dae52526_2_2_1.py +++ b/database/versions/a946dae52526_2_2_1.py @@ -36,14 +36,7 @@ def downgrade() -> None: """ 降级:将SiteUserData表的userid字段从String改回Integer """ - connection = op.get_bind() - - if settings.DB_TYPE.lower() == "postgresql": - # PostgreSQL数据库降级 - downgrade_postgresql_userid(connection) - else: - # SQLite数据库降级 - downgrade_sqlite_userid(connection) + pass def migrate_postgresql_userid(connection): @@ -150,109 +143,3 @@ def migrate_sqlite_userid(connection): raise -def downgrade_postgresql_userid(connection): - """ - PostgreSQL数据库userid字段降级 - """ - try: - logger.info("开始PostgreSQL数据库userid字段降级...") - - # 1. 创建临时列 - connection.execute(sa.text(""" - ALTER TABLE siteuserdata - ADD COLUMN userid_old INTEGER - """)) - - # 2. 将字符串转换为整数并复制到新列 - connection.execute(sa.text(""" - UPDATE siteuserdata - SET userid_old = CAST(userid AS INTEGER) - WHERE userid IS NOT NULL AND userid ~ '^[0-9]+$' - """)) - - # 3. 删除旧列 - connection.execute(sa.text(""" - ALTER TABLE siteuserdata - DROP COLUMN userid - """)) - - # 4. 重命名新列 - connection.execute(sa.text(""" - ALTER TABLE siteuserdata - RENAME COLUMN userid_old TO userid - """)) - - logger.info("PostgreSQL数据库userid字段降级完成") - - except Exception as e: - logger.error(f"PostgreSQL数据库userid字段降级失败: {e}") - raise - - -def downgrade_sqlite_userid(connection): - """ - SQLite数据库userid字段降级 - """ - try: - logger.info("开始SQLite数据库userid字段降级...") - - # SQLite不支持直接修改列类型,需要重建表 - # 1. 创建新表结构 - connection.execute(sa.text(""" - CREATE TABLE siteuserdata_old ( - id INTEGER PRIMARY KEY, - domain VARCHAR, - name VARCHAR, - username VARCHAR, - userid INTEGER, - user_level VARCHAR, - join_at VARCHAR, - bonus FLOAT DEFAULT 0, - upload FLOAT DEFAULT 0, - download FLOAT DEFAULT 0, - ratio FLOAT DEFAULT 0, - seeding FLOAT DEFAULT 0, - leeching FLOAT DEFAULT 0, - seeding_size FLOAT DEFAULT 0, - leeching_size FLOAT DEFAULT 0, - seeding_info JSON DEFAULT '{}', - message_unread INTEGER DEFAULT 0, - message_unread_contents JSON DEFAULT '[]', - err_msg VARCHAR, - updated_day VARCHAR, - updated_time VARCHAR - ) - """)) - - # 2. 复制数据,将字符串转换为整数(只转换数字字符串) - connection.execute(sa.text(""" - INSERT INTO siteuserdata_old - SELECT - id, domain, name, username, - CASE - WHEN userid IS NULL THEN NULL - WHEN userid REGEXP '^[0-9]+$' THEN CAST(userid AS INTEGER) - ELSE NULL - END as userid, - user_level, join_at, bonus, upload, download, ratio, - seeding, leeching, seeding_size, leeching_size, - seeding_info, message_unread, message_unread_contents, - err_msg, updated_day, updated_time - FROM siteuserdata - """)) - - # 3. 删除旧表 - connection.execute(sa.text("DROP TABLE siteuserdata")) - - # 4. 重命名新表 - connection.execute(sa.text("ALTER TABLE siteuserdata_old RENAME TO siteuserdata")) - - # 5. 重新创建索引 - connection.execute(sa.text("CREATE INDEX ix_siteuserdata_domain ON siteuserdata (domain)")) - connection.execute(sa.text("CREATE INDEX ix_siteuserdata_updated_day ON siteuserdata (updated_day)")) - - logger.info("SQLite数据库userid字段降级完成") - - except Exception as e: - logger.error(f"SQLite数据库userid字段降级失败: {e}") - raise \ No newline at end of file