60 lines
2.3 KiB
Python
60 lines
2.3 KiB
Python
"""202603261815
|
||
|
||
Revision ID: 1480a7d680fb
|
||
Revises: adaefcbe2aa1
|
||
Create Date: 2026-03-26 18:16:07.886033
|
||
|
||
"""
|
||
from typing import Sequence, Union
|
||
|
||
from alembic import op
|
||
import sqlalchemy as sa
|
||
from sqlalchemy.dialects import postgresql
|
||
|
||
# revision identifiers, used by Alembic.
|
||
revision: str = '1480a7d680fb'
|
||
down_revision: Union[str, None] = 'adaefcbe2aa1'
|
||
branch_labels: Union[str, Sequence[str], None] = None
|
||
depends_on: Union[str, Sequence[str], None] = None
|
||
|
||
|
||
def upgrade() -> None:
|
||
# ### commands auto generated by Alembic - please adjust! ###
|
||
op.create_table('end_user_info',
|
||
sa.Column('id', sa.UUID(), nullable=False),
|
||
sa.Column('end_user_id', sa.UUID(), nullable=False, comment='关联的终端用户ID'),
|
||
sa.Column('other_name', sa.String(), nullable=False, comment='关联的用户名称'),
|
||
sa.Column('aliases', sa.ARRAY(sa.String()), nullable=True, comment='用户别名列表(字符串数组)'),
|
||
sa.Column('meta_data', postgresql.JSONB(astext_type=sa.Text()), nullable=True, comment='用户相关的扩展信息(JSON格式)'),
|
||
sa.Column('created_at', sa.DateTime(), nullable=True, comment='创建时间'),
|
||
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='更新时间'),
|
||
sa.ForeignKeyConstraint(['end_user_id'], ['end_users.id'], ),
|
||
sa.PrimaryKeyConstraint('id')
|
||
)
|
||
op.create_index(op.f('ix_end_user_info_end_user_id'), 'end_user_info', ['end_user_id'], unique=False)
|
||
op.create_index(op.f('ix_end_user_info_id'), 'end_user_info', ['id'], unique=False)
|
||
|
||
connection = op.get_bind()
|
||
connection.execute(sa.text("""
|
||
INSERT INTO end_user_info (id, end_user_id, other_name, aliases, meta_data, created_at, updated_at)
|
||
SELECT
|
||
gen_random_uuid() as id,
|
||
id as end_user_id,
|
||
other_name,
|
||
'{}'::TEXT[] as aliases,
|
||
NULL as meta_data,
|
||
NOW() as created_at,
|
||
NOW() as updated_at
|
||
FROM end_users
|
||
"""))
|
||
|
||
# ### end Alembic commands ###
|
||
|
||
|
||
def downgrade() -> None:
|
||
# ### commands auto generated by Alembic - please adjust! ###
|
||
op.drop_index(op.f('ix_end_user_info_id'), table_name='end_user_info')
|
||
op.drop_index(op.f('ix_end_user_info_end_user_id'), table_name='end_user_info')
|
||
op.drop_table('end_user_info')
|
||
# ### end Alembic commands ###
|