"""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 ###