You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
8.6 KiB
Python

"""empty message
Revision ID: f9f008bd64bf
Revises:
Create Date: 2025-10-19 11:02:21.153893
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'f9f008bd64bf'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('sys_config',
sa.Column('type', sa.String(length=64), nullable=False, comment='配置类型'),
sa.Column('name', sa.String(length=255), nullable=False, comment='配置名称'),
sa.Column('code', sa.String(length=128), nullable=False, comment='配置编码'),
sa.Column('value', sa.Text(), nullable=True, comment='配置值'),
sa.Column('json_value', sa.Text(), nullable=True, comment='配置值(JSON格式)'),
sa.Column('desc', sa.Text(), nullable=True, comment='配置描述'),
sa.Column('sort', sa.Integer(), nullable=False, comment='排序'),
sa.Column('status', sa.Enum('enabled', 'disabled', name='statusenum'), nullable=False, comment='状态'),
sa.Column('id', sa.String(length=36), nullable=False, comment='标识'),
sa.Column('created_at', sa.DateTime(), nullable=True, comment='创建时间'),
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='更新时间'),
sa.PrimaryKeyConstraint('id', name=op.f('pk_sys_config'))
)
op.create_table('sys_dept',
sa.Column('name', sa.String(length=255), nullable=False, comment='部门名称'),
sa.Column('parent_id', sa.String(length=36), nullable=False, comment='父部门ID'),
sa.Column('desc', sa.Text(), nullable=True, comment='部门描述'),
sa.Column('sort', sa.Integer(), nullable=False, comment='排序'),
sa.Column('leader_id', sa.String(length=36), nullable=True, comment='负责人ID'),
sa.Column('status', sa.Enum('enabled', 'disabled', name='statusenum'), nullable=False, comment='状态'),
sa.Column('id', sa.String(length=36), nullable=False, comment='标识'),
sa.Column('created_at', sa.DateTime(), nullable=True, comment='创建时间'),
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='更新时间'),
sa.PrimaryKeyConstraint('id', name=op.f('pk_sys_dept'))
)
op.create_table('sys_dict_data',
sa.Column('type_code', sa.String(length=36), nullable=False, comment='类型编码'),
sa.Column('label', sa.String(length=255), nullable=False, comment='数据标签'),
sa.Column('code', sa.String(length=128), nullable=False, comment='数据编码'),
sa.Column('value', sa.Text(), nullable=True, comment='数据值'),
sa.Column('desc', sa.Text(), nullable=True, comment='数据描述'),
sa.Column('sort', sa.Integer(), nullable=False, comment='排序'),
sa.Column('status', sa.Enum('enabled', 'disabled', name='statusenum'), nullable=False, comment='状态'),
sa.Column('id', sa.String(length=36), nullable=False, comment='标识'),
sa.Column('created_at', sa.DateTime(), nullable=True, comment='创建时间'),
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='更新时间'),
sa.PrimaryKeyConstraint('id', name=op.f('pk_sys_dict_data'))
)
op.create_table('sys_dict_type',
sa.Column('type_name', sa.String(length=255), nullable=False, comment='类型名称'),
sa.Column('type_code', sa.String(length=128), nullable=False, comment='类型编码'),
sa.Column('desc', sa.Text(), nullable=True, comment='类型描述'),
sa.Column('sort', sa.Integer(), nullable=False, comment='排序'),
sa.Column('status', sa.Enum('enabled', 'disabled', name='statusenum'), nullable=False, comment='状态'),
sa.Column('id', sa.String(length=36), nullable=False, comment='标识'),
sa.Column('created_at', sa.DateTime(), nullable=True, comment='创建时间'),
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='更新时间'),
sa.PrimaryKeyConstraint('id', name=op.f('pk_sys_dict_type')),
sa.UniqueConstraint('type_code', name=op.f('uq_sys_dict_type_type_code'))
)
op.create_table('sys_log',
sa.Column('name', sa.String(length=100), nullable=True, comment='操作名称'),
sa.Column('method', sa.String(length=10), nullable=True, comment='请求方法'),
sa.Column('user_id', sa.String(length=36), nullable=True, comment='用户ID'),
sa.Column('path', sa.String(length=255), nullable=True, comment='请求路径'),
sa.Column('ip', sa.String(length=255), nullable=True, comment='IP地址'),
sa.Column('user_agent', sa.Text(), nullable=True, comment='用户代理'),
sa.Column('headers', sa.Text(), nullable=True, comment='请求头'),
sa.Column('query_params', sa.Text(), nullable=True, comment='请求参数'),
sa.Column('body_params', sa.Text(), nullable=True, comment='请求体参数'),
sa.Column('execution_time', sa.Float(), nullable=True, comment='执行时间(毫秒)'),
sa.Column('response', sa.Text(), nullable=True, comment='响应结果'),
sa.Column('exception', sa.Text(), nullable=True, comment='异常信息'),
sa.Column('success', sa.Boolean(), nullable=True, comment='是否成功'),
sa.Column('desc', sa.Text(), nullable=True, comment='描述'),
sa.Column('type', sa.String(length=64), nullable=True, comment='日志类型'),
sa.Column('id', sa.String(length=36), nullable=False, comment='标识'),
sa.Column('created_at', sa.DateTime(), nullable=True, comment='创建时间'),
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='更新时间'),
sa.PrimaryKeyConstraint('id', name=op.f('pk_sys_log'))
)
with op.batch_alter_table('sys_log', schema=None) as batch_op:
batch_op.create_index(batch_op.f('ix_sys_log_type'), ['type'], unique=False)
op.create_table('sys_role',
sa.Column('name', sa.String(length=64), nullable=False, comment='名称'),
sa.Column('code', sa.String(length=64), nullable=False, comment='编码'),
sa.Column('desc', sa.Text(), nullable=True, comment='描述'),
sa.Column('sort', sa.Integer(), nullable=False, comment='排序'),
sa.Column('status', sa.Enum('enabled', 'disabled', name='statusenum'), nullable=False, comment='状态'),
sa.Column('id', sa.String(length=36), nullable=False, comment='标识'),
sa.Column('created_at', sa.DateTime(), nullable=True, comment='创建时间'),
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='更新时间'),
sa.PrimaryKeyConstraint('id', name=op.f('pk_sys_role')),
sa.UniqueConstraint('code', name=op.f('uq_sys_role_code'))
)
op.create_table('sys_user',
sa.Column('username', sa.String(length=64), nullable=False, comment='用户名'),
sa.Column('phone', sa.String(length=13), nullable=True, comment='手机号'),
sa.Column('email', sa.String(length=255), nullable=True, comment='邮箱'),
sa.Column('password', sa.String(length=255), nullable=False, comment='密码'),
sa.Column('realname', sa.String(length=32), nullable=False, comment='真实姓名'),
sa.Column('avatar', sa.String(length=255), nullable=True, comment='头像'),
sa.Column('gender', sa.Enum('male', 'female', 'secure', name='genderenum'), nullable=False, comment='性别'),
sa.Column('status', sa.Enum('enabled', 'disabled', name='statusenum'), nullable=False, comment='状态'),
sa.Column('id', sa.String(length=36), nullable=False, comment='标识'),
sa.Column('created_at', sa.DateTime(), nullable=True, comment='创建时间'),
sa.Column('updated_at', sa.DateTime(), nullable=True, comment='更新时间'),
sa.PrimaryKeyConstraint('id', name=op.f('pk_sys_user'))
)
op.create_table('sys_user_dept',
sa.Column('user_id', sa.String(length=36), nullable=False, comment='用户ID'),
sa.Column('dept_id', sa.String(length=36), nullable=False, comment='部门ID'),
sa.PrimaryKeyConstraint('user_id', 'dept_id', name=op.f('pk_sys_user_dept'))
)
op.create_table('sys_user_role',
sa.Column('user_id', sa.String(length=36), nullable=False, comment='用户ID'),
sa.Column('role_id', sa.String(length=36), nullable=False, comment='角色ID'),
sa.PrimaryKeyConstraint('user_id', 'role_id', name=op.f('pk_sys_user_role'))
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('sys_user_role')
op.drop_table('sys_user_dept')
op.drop_table('sys_user')
op.drop_table('sys_role')
with op.batch_alter_table('sys_log', schema=None) as batch_op:
batch_op.drop_index(batch_op.f('ix_sys_log_type'))
op.drop_table('sys_log')
op.drop_table('sys_dict_type')
op.drop_table('sys_dict_data')
op.drop_table('sys_dept')
op.drop_table('sys_config')
# ### end Alembic commands ###