mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-09 01:16:50 +08:00
Merge pull request #4836 from jxxghp/cursor/alter-siteuser-data-userid-to-character-type-9f4d
This commit is contained in:
@@ -20,7 +20,7 @@ class SiteUserData(Base):
|
|||||||
# 用户名
|
# 用户名
|
||||||
username = Column(String)
|
username = Column(String)
|
||||||
# 用户ID
|
# 用户ID
|
||||||
userid = Column(Integer)
|
userid = Column(String)
|
||||||
# 用户等级
|
# 用户等级
|
||||||
user_level = Column(String)
|
user_level = Column(String)
|
||||||
# 加入时间
|
# 加入时间
|
||||||
|
|||||||
+1
-1
@@ -77,7 +77,7 @@ class SiteUserData(BaseModel):
|
|||||||
# 用户名
|
# 用户名
|
||||||
username: Optional[str] = None
|
username: Optional[str] = None
|
||||||
# 用户ID
|
# 用户ID
|
||||||
userid: Optional[Union[int, str]] = None
|
userid: Optional[str] = None
|
||||||
# 用户等级
|
# 用户等级
|
||||||
user_level: Optional[str] = None
|
user_level: Optional[str] = None
|
||||||
# 加入时间
|
# 加入时间
|
||||||
|
|||||||
@@ -0,0 +1,80 @@
|
|||||||
|
"""2.2.1
|
||||||
|
|
||||||
|
Revision ID: a946dae52526
|
||||||
|
Revises: 5b3355c964bb
|
||||||
|
Create Date: 2025-08-20 17:50:00.000000
|
||||||
|
|
||||||
|
"""
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
|
from app.log import logger
|
||||||
|
from app.core.config import settings
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = 'a946dae52526'
|
||||||
|
down_revision = '5b3355c964bb'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade() -> None:
|
||||||
|
"""
|
||||||
|
升级:将SiteUserData表的userid字段从Integer改为String
|
||||||
|
"""
|
||||||
|
connection = op.get_bind()
|
||||||
|
|
||||||
|
if settings.DB_TYPE.lower() == "postgresql":
|
||||||
|
# PostgreSQL数据库迁移
|
||||||
|
migrate_postgresql_userid(connection)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade() -> None:
|
||||||
|
"""
|
||||||
|
降级:将SiteUserData表的userid字段从String改回Integer
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def migrate_postgresql_userid(connection):
|
||||||
|
"""
|
||||||
|
PostgreSQL数据库userid字段迁移
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
logger.info("开始PostgreSQL数据库userid字段迁移...")
|
||||||
|
|
||||||
|
# 1. 创建临时列
|
||||||
|
connection.execute(sa.text("""
|
||||||
|
ALTER TABLE siteuserdata
|
||||||
|
ADD COLUMN userid_new VARCHAR
|
||||||
|
"""))
|
||||||
|
|
||||||
|
# 2. 将现有数据转换为字符串并复制到新列
|
||||||
|
connection.execute(sa.text("""
|
||||||
|
UPDATE siteuserdata
|
||||||
|
SET userid_new = CAST(userid AS VARCHAR)
|
||||||
|
WHERE userid IS NOT NULL
|
||||||
|
"""))
|
||||||
|
|
||||||
|
# 3. 删除旧列
|
||||||
|
connection.execute(sa.text("""
|
||||||
|
ALTER TABLE siteuserdata
|
||||||
|
DROP COLUMN userid
|
||||||
|
"""))
|
||||||
|
|
||||||
|
# 4. 重命名新列
|
||||||
|
connection.execute(sa.text("""
|
||||||
|
ALTER TABLE siteuserdata
|
||||||
|
RENAME COLUMN userid_new TO userid
|
||||||
|
"""))
|
||||||
|
|
||||||
|
logger.info("PostgreSQL数据库userid字段迁移完成")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"PostgreSQL数据库userid字段迁移失败: {e}")
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user