VWED_server/migrations/versions/001_add_task_id_field.py
2025-04-30 16:57:46 +08:00

55 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""添加 task_id 字段到 Task 表
Revision ID: 001
Revises:
Create Date: 2023-07-01
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy import text
import uuid
from sqlalchemy.engine import reflection
import sys
import os
from pathlib import Path
# 添加 migrations 目录到 Python 路径
sys.path.insert(0, str(Path(__file__).parent.parent))
# 导入迁移辅助模块
from migration_helpers import (
safe_add_column,
safe_create_index,
safe_alter_column,
generate_uuid_for_null_values,
safe_drop_index,
safe_drop_column
)
# revision identifiers, used by Alembic.
revision = '001'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
# 添加 task_id 字段到 Task 表
if safe_add_column('tasks', 'task_id', sa.String(36), nullable=True, comment='任务UUID用于外部引用'):
# 为已有记录生成 UUID
generate_uuid_for_null_values('tasks', 'task_id')
# 添加唯一索引
safe_create_index('ix_tasks_task_id', 'tasks', ['task_id'], unique=True)
# 添加非空约束
safe_alter_column('tasks', 'task_id', nullable=False, existing_type=sa.String(36))
def downgrade():
# 删除索引
safe_drop_index('ix_tasks_task_id', 'tasks')
# 删除列
safe_drop_column('tasks', 'task_id')