签入版本
This commit is contained in:
@@ -0,0 +1,635 @@
|
||||
"""初始化
|
||||
|
||||
Revision ID: d6e1fac26659
|
||||
Revises:
|
||||
Create Date: 2026-09-15 17:51:25.310996
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = 'd6e1fac26659'
|
||||
down_revision: Union[str, Sequence[str], None] = None
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
"""Upgrade schema."""
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.create_table('tornado_article',
|
||||
sa.Column('category_id', sa.Integer(), nullable=True, comment='分类ID'),
|
||||
sa.Column('title', sa.String(length=150), nullable=True, comment='文章标题'),
|
||||
sa.Column('cover', sa.String(length=255), nullable=True, comment='文章封面'),
|
||||
sa.Column('images', sa.Text(), nullable=True, comment='文章图集'),
|
||||
sa.Column('intro', sa.String(length=255), nullable=True, comment='文章导读'),
|
||||
sa.Column('content', sa.Text(), nullable=True, comment='文章内容'),
|
||||
sa.Column('author', sa.String(length=100), nullable=True, comment='文章作者'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='文章状态:0-正常 1-下架'),
|
||||
sa.Column('click', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='文章点击率'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='文章排序'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='文章表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_article_category_id'), 'tornado_article', ['category_id'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_article_is_delete'), 'tornado_article', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_article_status'), 'tornado_article', ['status'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_article_title'), 'tornado_article', ['title'], unique=False)
|
||||
op.create_table('tornado_category',
|
||||
sa.Column('category_name', sa.String(length=100), nullable=False, comment='分类名称'),
|
||||
sa.Column('category_code', sa.String(length=100), nullable=True, comment='分类编码'),
|
||||
sa.Column('parent_id', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='上级ID'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='排序'),
|
||||
sa.Column('note', sa.String(length=100), nullable=True, comment='分类备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='文章分类表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_category_category_name'), 'tornado_category', ['category_name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_category_is_delete'), 'tornado_category', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_category_parent_id'), 'tornado_category', ['parent_id'], unique=False)
|
||||
op.create_table('tornado_city',
|
||||
sa.Column('city_code', sa.String(length=6), nullable=False, comment='城市区号'),
|
||||
sa.Column('area_code', sa.String(length=20), nullable=False, comment='行政编码'),
|
||||
sa.Column('parent_code', sa.String(length=20), nullable=True, comment='上级行政编码'),
|
||||
sa.Column('zip_code', sa.String(length=6), nullable=False, comment='邮政编码'),
|
||||
sa.Column('level', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='城市级别:1-省份 2-城市 3-县区 4-街道'),
|
||||
sa.Column('pid', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='上级城市ID'),
|
||||
sa.Column('name', sa.String(length=150), nullable=False, comment='城市名称'),
|
||||
sa.Column('short_name', sa.String(length=150), nullable=False, comment='城市简称'),
|
||||
sa.Column('full_name', sa.String(length=150), nullable=True, comment='城市全称'),
|
||||
sa.Column('pinyin', sa.String(length=150), nullable=True, comment='城市拼音'),
|
||||
sa.Column('lng', sa.String(length=150), nullable=True, comment='城市经度'),
|
||||
sa.Column('lat', sa.String(length=150), nullable=True, comment='城市纬度'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='城市行政区划表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_city_area_code'), 'tornado_city', ['area_code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_city_city_code'), 'tornado_city', ['city_code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_city_is_delete'), 'tornado_city', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_city_level'), 'tornado_city', ['level'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_city_name'), 'tornado_city', ['name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_city_parent_code'), 'tornado_city', ['parent_code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_city_pid'), 'tornado_city', ['pid'], unique=False)
|
||||
op.create_table('tornado_config',
|
||||
sa.Column('name', sa.String(length=150), nullable=False, comment='配置名称'),
|
||||
sa.Column('code', sa.String(length=150), nullable=False, comment='配置编码'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='配置排序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='配置备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='系统配置表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_config_code'), 'tornado_config', ['code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_config_is_delete'), 'tornado_config', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_config_name'), 'tornado_config', ['name'], unique=False)
|
||||
op.create_table('tornado_config_item',
|
||||
sa.Column('name', sa.String(length=100), nullable=False, comment='配置项名称'),
|
||||
sa.Column('code', sa.String(length=100), nullable=False, comment='配置项编码'),
|
||||
sa.Column('value', sa.String(length=1000), nullable=False, comment='配置项值'),
|
||||
sa.Column('options', sa.String(length=255), nullable=False, comment='配置选项'),
|
||||
sa.Column('config_id', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='配置ID'),
|
||||
sa.Column('type', sa.String(length=100), nullable=False, comment='配置类型'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('1'), nullable=False, comment='配置状态:1-正常 2-停用'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='配置项排序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='配置项备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='配置项表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_config_item_config_id'), 'tornado_config_item', ['config_id'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_config_item_is_delete'), 'tornado_config_item', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_config_item_name'), 'tornado_config_item', ['name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_config_item_status'), 'tornado_config_item', ['status'], unique=False)
|
||||
op.create_table('tornado_dept',
|
||||
sa.Column('name', sa.String(length=150), nullable=False, comment='部门名称'),
|
||||
sa.Column('type', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='部门类型:1-公司 2-子公司 3-部门 4-小组'),
|
||||
sa.Column('parent_id', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='上级部门ID'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='部门排序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='部门表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_dept_is_delete'), 'tornado_dept', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_dept_name'), 'tornado_dept', ['name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_dept_parent_id'), 'tornado_dept', ['parent_id'], unique=False)
|
||||
op.create_table('tornado_dict',
|
||||
sa.Column('name', sa.String(length=150), nullable=False, comment='字典名称'),
|
||||
sa.Column('code', sa.String(length=150), nullable=False, comment='字典编码'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='字典排序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='字典备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='数据字典表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_dict_code'), 'tornado_dict', ['code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_dict_is_delete'), 'tornado_dict', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_dict_name'), 'tornado_dict', ['name'], unique=False)
|
||||
op.create_table('tornado_dict_item',
|
||||
sa.Column('name', sa.String(length=150), nullable=False, comment='字典项名称'),
|
||||
sa.Column('value', sa.String(length=150), nullable=False, comment='字典项值'),
|
||||
sa.Column('dict_id', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='字典ID'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='字典项顺序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='字典项备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='字典项表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_dict_item_dict_id'), 'tornado_dict_item', ['dict_id'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_dict_item_is_delete'), 'tornado_dict_item', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_dict_item_name'), 'tornado_dict_item', ['name'], unique=False)
|
||||
op.create_table('tornado_file_template',
|
||||
sa.Column('name', sa.String(length=100), nullable=True, comment='模板名称'),
|
||||
sa.Column('code', sa.String(length=50), nullable=True, comment='模板编码'),
|
||||
sa.Column('file_name', sa.String(length=255), nullable=True, comment='文件名称'),
|
||||
sa.Column('file_path', sa.String(length=255), nullable=True, comment='文件路径'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='文件模板备注'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='文件模板顺序'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='文件模板表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_file_template_code'), 'tornado_file_template', ['code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_file_template_is_delete'), 'tornado_file_template', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_file_template_name'), 'tornado_file_template', ['name'], unique=False)
|
||||
op.create_table('tornado_job',
|
||||
sa.Column('job_name', sa.String(length=255), nullable=False, comment='任务名称'),
|
||||
sa.Column('job_alias', sa.String(length=255), nullable=True, comment='任务别名'),
|
||||
sa.Column('job_group', sa.String(length=255), nullable=True, comment='任务分组'),
|
||||
sa.Column('job_trigger', sa.String(length=255), nullable=True, comment='任务触发器'),
|
||||
sa.Column('status', sa.SmallInteger(), server_default=sa.text('0'), nullable=False, comment='任务状态:0-未发布 1-运行中 2-暂停 3-删除'),
|
||||
sa.Column('cron_expression', sa.String(length=255), nullable=True, comment='Cron表达式'),
|
||||
sa.Column('execute_policy', sa.SmallInteger(), server_default=sa.text('1'), nullable=False, comment='执行策略:1-立即执行 2-执行一次 3-放弃执行'),
|
||||
sa.Column('is_sync', sa.SmallInteger(), server_default=sa.text('0'), nullable=False, comment='是否同步任务:0-否 1-是'),
|
||||
sa.Column('url', sa.String(length=255), nullable=True, comment='任务URL'),
|
||||
sa.Column('params', sa.Text(), nullable=True, comment='任务参数'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='任务备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='定时任务表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_job_is_delete'), 'tornado_job', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_job_job_name'), 'tornado_job', ['job_name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_job_status'), 'tornado_job', ['status'], unique=False)
|
||||
op.create_table('tornado_job_log',
|
||||
sa.Column('job_id', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='任务ID'),
|
||||
sa.Column('job_name', sa.String(length=255), nullable=False, comment='任务名称'),
|
||||
sa.Column('job_group', sa.String(length=255), nullable=True, comment='任务分组'),
|
||||
sa.Column('job_trigger', sa.String(length=255), nullable=True, comment='任务触发器'),
|
||||
sa.Column('job_message', sa.String(length=500), nullable=True, comment='任务日志信息'),
|
||||
sa.Column('cron_expression', sa.String(length=255), nullable=True, comment='Cron表达式'),
|
||||
sa.Column('status', sa.SmallInteger(), server_default=sa.text('0'), nullable=False, comment='执行状态:0-正常 1-失败'),
|
||||
sa.Column('start_time', sa.DateTime(), nullable=True, comment='执行开始时间'),
|
||||
sa.Column('end_time', sa.DateTime(), nullable=True, comment='执行结束时间'),
|
||||
sa.Column('consume_time', sa.BigInteger(), server_default=sa.text('0'), nullable=False, comment='执行耗时(毫秒)'),
|
||||
sa.Column('exception_info', sa.Text(), nullable=True, comment='异常信息'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='定时任务日志表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_job_log_is_delete'), 'tornado_job_log', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_job_log_job_id'), 'tornado_job_log', ['job_id'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_job_log_status'), 'tornado_job_log', ['status'], unique=False)
|
||||
op.create_table('tornado_level',
|
||||
sa.Column('name', sa.String(length=255), nullable=False, comment='职级名称'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='职级状态:1-在用 2-停用'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='职级排序'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='职级表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_level_is_delete'), 'tornado_level', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_level_name'), 'tornado_level', ['name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_level_status'), 'tornado_level', ['status'], unique=False)
|
||||
op.create_table('tornado_link',
|
||||
sa.Column('name', sa.String(length=255), nullable=False, comment='友链名称'),
|
||||
sa.Column('type', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='友链类型:1-友情链接 2-合作伙伴'),
|
||||
sa.Column('url', sa.String(length=255), nullable=True, comment='友链URL'),
|
||||
sa.Column('form', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='友链形式:1-文字链接 2-图片链接'),
|
||||
sa.Column('image', sa.String(length=255), nullable=True, comment='友链图片'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='友链状态:1-正常 2-停用'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='友链顺序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='友链备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='友链表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_link_is_delete'), 'tornado_link', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_link_name'), 'tornado_link', ['name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_link_status'), 'tornado_link', ['status'], unique=False)
|
||||
op.create_table('tornado_login_log',
|
||||
sa.Column('username', sa.String(length=50), nullable=False, comment='登录账号'),
|
||||
sa.Column('log_type', sa.Integer(), server_default=sa.text('1'), nullable=False, comment='日志类型:1-登录 2-退出'),
|
||||
sa.Column('source', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='登录来源:0-后台 1-前台'),
|
||||
sa.Column('method', sa.String(length=10), nullable=False, comment='请求方法'),
|
||||
sa.Column('request_method', sa.String(length=10), nullable=False, comment='请求方式'),
|
||||
sa.Column('url', sa.String(length=500), nullable=False, comment='请求URL'),
|
||||
sa.Column('param', sa.Text(), nullable=True, comment='请求参数'),
|
||||
sa.Column('result', sa.Text(), nullable=False, comment='返回结果'),
|
||||
sa.Column('ip', sa.String(length=50), nullable=False, comment='IP地址'),
|
||||
sa.Column('location', sa.String(length=100), nullable=False, comment='IP归属地'),
|
||||
sa.Column('os', sa.String(length=100), nullable=False, comment='操作系统'),
|
||||
sa.Column('browser', sa.String(length=100), nullable=False, comment='浏览器'),
|
||||
sa.Column('consume_time', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='请求耗时(毫秒)'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='操作状态:0-正常 1-异常'),
|
||||
sa.Column('error', sa.Text(), nullable=True, comment='错误信息'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='登录日志表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_login_log_is_delete'), 'tornado_login_log', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_login_log_log_type'), 'tornado_login_log', ['log_type'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_login_log_username'), 'tornado_login_log', ['username'], unique=False)
|
||||
op.create_table('tornado_menu',
|
||||
sa.Column('name', sa.String(length=150), nullable=False, comment='菜单名称'),
|
||||
sa.Column('icon', sa.String(length=50), nullable=True, comment='菜单图标'),
|
||||
sa.Column('icon2', sa.String(length=50), nullable=True, comment='菜单图标'),
|
||||
sa.Column('parent_id', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='上级ID'),
|
||||
sa.Column('path', sa.String(length=255), nullable=True, comment='菜单路径'),
|
||||
sa.Column('component', sa.String(length=255), nullable=True, comment='菜单组件'),
|
||||
sa.Column('permission', sa.String(length=150), nullable=True, comment='权限节点'),
|
||||
sa.Column('target', sa.String(length=30), nullable=True, comment='打开方式:1-内部打开 2-外部打开'),
|
||||
sa.Column('type', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='菜单类型:0-菜单 1-节点'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='菜单状态:1-正常 2-停用'),
|
||||
sa.Column('hide', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='是否可见:0-可见 1-不可见'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='排序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='菜单表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_menu_is_delete'), 'tornado_menu', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_menu_name'), 'tornado_menu', ['name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_menu_parent_id'), 'tornado_menu', ['parent_id'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_menu_permission'), 'tornado_menu', ['permission'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_menu_status'), 'tornado_menu', ['status'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_menu_type'), 'tornado_menu', ['type'], unique=False)
|
||||
op.create_table('tornado_notice',
|
||||
sa.Column('title', sa.String(length=255), nullable=False, comment='通知标题'),
|
||||
sa.Column('cover', sa.String(length=255), nullable=True, comment='通知封面'),
|
||||
sa.Column('type', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='通知类型:1-通知 2-公告'),
|
||||
sa.Column('click_num', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='点击率'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='通知状态:1-正常 2-停用'),
|
||||
sa.Column('content', sa.Text(), nullable=True, comment='通知公告内容'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='通知公告表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_notice_is_delete'), 'tornado_notice', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_notice_status'), 'tornado_notice', ['status'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_notice_title'), 'tornado_notice', ['title'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_notice_type'), 'tornado_notice', ['type'], unique=False)
|
||||
op.create_table('tornado_operation_log',
|
||||
sa.Column('title', sa.String(length=150), nullable=False, comment='请求标题'),
|
||||
sa.Column('type', sa.Integer(), server_default=sa.text('1'), nullable=False, comment='请求类型:1-新增 2-修改 3-删除'),
|
||||
sa.Column('source', sa.SmallInteger(), server_default=sa.text('1'), nullable=False, comment='请求来源:1-PC端 2-移动端'),
|
||||
sa.Column('method', sa.String(length=100), nullable=False, comment='请求方法(操作)'),
|
||||
sa.Column('request_method', sa.String(length=100), nullable=False, comment='请求方式(HTTP)'),
|
||||
sa.Column('url', sa.String(length=1000), nullable=False, comment='请求URL'),
|
||||
sa.Column('param', sa.Text(), nullable=True, comment='请求参数'),
|
||||
sa.Column('result', sa.Text(), nullable=True, comment='请求结果'),
|
||||
sa.Column('ip', sa.String(length=100), nullable=False, comment='请求IP'),
|
||||
sa.Column('location', sa.String(length=255), nullable=False, comment='请求所在区域'),
|
||||
sa.Column('os', sa.String(length=100), nullable=False, comment='操作系统'),
|
||||
sa.Column('browser', sa.String(length=100), nullable=False, comment='浏览器'),
|
||||
sa.Column('consume_time', sa.BigInteger(), server_default=sa.text('0'), nullable=False, comment='请求耗时(毫秒)'),
|
||||
sa.Column('status', sa.SmallInteger(), server_default=sa.text('0'), nullable=False, comment='请求状态:0-成功 1-失败'),
|
||||
sa.Column('error', sa.Text(), nullable=True, comment='错误描述'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='操作日志表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_operation_log_is_delete'), 'tornado_operation_log', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_operation_log_title'), 'tornado_operation_log', ['title'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_operation_log_type'), 'tornado_operation_log', ['type'], unique=False)
|
||||
op.create_table('tornado_param',
|
||||
sa.Column('name', sa.String(length=100), nullable=False, comment='参数名称'),
|
||||
sa.Column('code', sa.String(length=100), nullable=False, comment='参数编码'),
|
||||
sa.Column('value', sa.String(length=255), nullable=False, comment='参数值'),
|
||||
sa.Column('type', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='参数类型:0-系统 1-业务'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('1'), nullable=False, comment='参数状态:1-正常 2-禁用'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='参数排序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='参数备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='系统参数表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_param_code'), 'tornado_param', ['code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_param_is_delete'), 'tornado_param', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_param_name'), 'tornado_param', ['name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_param_status'), 'tornado_param', ['status'], unique=False)
|
||||
op.create_table('tornado_position',
|
||||
sa.Column('name', sa.String(length=255), nullable=False, comment='岗位名称'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='岗位状态:1-在用 2-停用'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='岗位排序'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='岗位表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_position_is_delete'), 'tornado_position', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_position_name'), 'tornado_position', ['name'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_position_status'), 'tornado_position', ['status'], unique=False)
|
||||
op.create_table('tornado_role',
|
||||
sa.Column('name', sa.String(length=150), nullable=False, comment='角色名称'),
|
||||
sa.Column('code', sa.String(length=30), nullable=False, comment='角色编码'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='角色排序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='角色备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='角色表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_role_code'), 'tornado_role', ['code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_role_is_delete'), 'tornado_role', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_role_name'), 'tornado_role', ['name'], unique=False)
|
||||
op.create_table('tornado_role_menu',
|
||||
sa.Column('role_id', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='角色ID'),
|
||||
sa.Column('menu_id', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='菜单ID'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='角色菜单关联表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_role_menu_is_delete'), 'tornado_role_menu', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_role_menu_menu_id'), 'tornado_role_menu', ['menu_id'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_role_menu_role_id'), 'tornado_role_menu', ['role_id'], unique=False)
|
||||
op.create_table('tornado_user',
|
||||
sa.Column('code', sa.String(length=100), server_default=sa.text("''"), nullable=False, comment='用户编码'),
|
||||
sa.Column('realname', sa.String(length=150), nullable=False, comment='用户姓名'),
|
||||
sa.Column('gender', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='性别:1-男 2-女 3-保密'),
|
||||
sa.Column('avatar', sa.String(length=255), nullable=False, comment='用户头像'),
|
||||
sa.Column('mobile', sa.String(length=30), nullable=False, comment='手机号'),
|
||||
sa.Column('email', sa.String(length=30), nullable=False, comment='邮箱'),
|
||||
sa.Column('dept_id', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='部门ID'),
|
||||
sa.Column('level_id', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='职级ID'),
|
||||
sa.Column('position_id', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='岗位ID'),
|
||||
sa.Column('province_code', sa.String(length=30), nullable=False, comment='省份编码'),
|
||||
sa.Column('city_code', sa.String(length=30), nullable=False, comment='城市编码'),
|
||||
sa.Column('district_code', sa.String(length=30), nullable=False, comment='县区编码'),
|
||||
sa.Column('street_code', sa.String(length=30), nullable=False, comment='街道编码'),
|
||||
sa.Column('city_info', sa.String(length=255), nullable=True, comment='省市区信息'),
|
||||
sa.Column('address', sa.String(length=255), nullable=False, comment='详细地址'),
|
||||
sa.Column('username', sa.String(length=30), nullable=True, comment='用户名'),
|
||||
sa.Column('password', sa.String(length=255), nullable=True, comment='密码'),
|
||||
sa.Column('salt', sa.String(length=30), nullable=True, comment='加密盐'),
|
||||
sa.Column('intro', sa.String(length=255), nullable=True, comment='个人简介'),
|
||||
sa.Column('status', sa.Integer(), server_default=sa.text('1'), nullable=True, comment='状态:1-正常 2-禁用'),
|
||||
sa.Column('sort', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='排序'),
|
||||
sa.Column('note', sa.String(length=255), nullable=True, comment='个人备注'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='用户表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_user_code'), 'tornado_user', ['code'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_dept_id'), 'tornado_user', ['dept_id'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_email'), 'tornado_user', ['email'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_is_delete'), 'tornado_user', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_mobile'), 'tornado_user', ['mobile'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_realname'), 'tornado_user', ['realname'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_status'), 'tornado_user', ['status'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_username'), 'tornado_user', ['username'], unique=False)
|
||||
op.create_table('tornado_user_role',
|
||||
sa.Column('user_id', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='用户ID'),
|
||||
sa.Column('role_id', sa.Integer(), server_default=sa.text('0'), nullable=False, comment='角色ID'),
|
||||
sa.Column('id', sa.Integer(), autoincrement=True, nullable=False, comment='主键ID'),
|
||||
sa.Column('create_user', sa.String(length=50), nullable=True, comment='创建人'),
|
||||
sa.Column('create_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='创建时间'),
|
||||
sa.Column('update_user', sa.String(length=50), nullable=True, comment='更新人'),
|
||||
sa.Column('update_time', sa.DateTime(), server_default=sa.text('now()'), nullable=True, comment='更新时间'),
|
||||
sa.Column('is_delete', sa.Integer(), server_default=sa.text('0'), nullable=True, comment='删除标识:0-正常 1-已删除'),
|
||||
sa.PrimaryKeyConstraint('id'),
|
||||
comment='用户角色关联表'
|
||||
)
|
||||
op.create_index(op.f('ix_tornado_user_role_is_delete'), 'tornado_user_role', ['is_delete'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_role_role_id'), 'tornado_user_role', ['role_id'], unique=False)
|
||||
op.create_index(op.f('ix_tornado_user_role_user_id'), 'tornado_user_role', ['user_id'], unique=False)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
"""Downgrade schema."""
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_index(op.f('ix_tornado_user_role_user_id'), table_name='tornado_user_role')
|
||||
op.drop_index(op.f('ix_tornado_user_role_role_id'), table_name='tornado_user_role')
|
||||
op.drop_index(op.f('ix_tornado_user_role_is_delete'), table_name='tornado_user_role')
|
||||
op.drop_table('tornado_user_role')
|
||||
op.drop_index(op.f('ix_tornado_user_username'), table_name='tornado_user')
|
||||
op.drop_index(op.f('ix_tornado_user_status'), table_name='tornado_user')
|
||||
op.drop_index(op.f('ix_tornado_user_realname'), table_name='tornado_user')
|
||||
op.drop_index(op.f('ix_tornado_user_mobile'), table_name='tornado_user')
|
||||
op.drop_index(op.f('ix_tornado_user_is_delete'), table_name='tornado_user')
|
||||
op.drop_index(op.f('ix_tornado_user_email'), table_name='tornado_user')
|
||||
op.drop_index(op.f('ix_tornado_user_dept_id'), table_name='tornado_user')
|
||||
op.drop_index(op.f('ix_tornado_user_code'), table_name='tornado_user')
|
||||
op.drop_table('tornado_user')
|
||||
op.drop_index(op.f('ix_tornado_role_menu_role_id'), table_name='tornado_role_menu')
|
||||
op.drop_index(op.f('ix_tornado_role_menu_menu_id'), table_name='tornado_role_menu')
|
||||
op.drop_index(op.f('ix_tornado_role_menu_is_delete'), table_name='tornado_role_menu')
|
||||
op.drop_table('tornado_role_menu')
|
||||
op.drop_index(op.f('ix_tornado_role_name'), table_name='tornado_role')
|
||||
op.drop_index(op.f('ix_tornado_role_is_delete'), table_name='tornado_role')
|
||||
op.drop_index(op.f('ix_tornado_role_code'), table_name='tornado_role')
|
||||
op.drop_table('tornado_role')
|
||||
op.drop_index(op.f('ix_tornado_position_status'), table_name='tornado_position')
|
||||
op.drop_index(op.f('ix_tornado_position_name'), table_name='tornado_position')
|
||||
op.drop_index(op.f('ix_tornado_position_is_delete'), table_name='tornado_position')
|
||||
op.drop_table('tornado_position')
|
||||
op.drop_index(op.f('ix_tornado_param_status'), table_name='tornado_param')
|
||||
op.drop_index(op.f('ix_tornado_param_name'), table_name='tornado_param')
|
||||
op.drop_index(op.f('ix_tornado_param_is_delete'), table_name='tornado_param')
|
||||
op.drop_index(op.f('ix_tornado_param_code'), table_name='tornado_param')
|
||||
op.drop_table('tornado_param')
|
||||
op.drop_index(op.f('ix_tornado_operation_log_type'), table_name='tornado_operation_log')
|
||||
op.drop_index(op.f('ix_tornado_operation_log_title'), table_name='tornado_operation_log')
|
||||
op.drop_index(op.f('ix_tornado_operation_log_is_delete'), table_name='tornado_operation_log')
|
||||
op.drop_table('tornado_operation_log')
|
||||
op.drop_index(op.f('ix_tornado_notice_type'), table_name='tornado_notice')
|
||||
op.drop_index(op.f('ix_tornado_notice_title'), table_name='tornado_notice')
|
||||
op.drop_index(op.f('ix_tornado_notice_status'), table_name='tornado_notice')
|
||||
op.drop_index(op.f('ix_tornado_notice_is_delete'), table_name='tornado_notice')
|
||||
op.drop_table('tornado_notice')
|
||||
op.drop_index(op.f('ix_tornado_menu_type'), table_name='tornado_menu')
|
||||
op.drop_index(op.f('ix_tornado_menu_status'), table_name='tornado_menu')
|
||||
op.drop_index(op.f('ix_tornado_menu_permission'), table_name='tornado_menu')
|
||||
op.drop_index(op.f('ix_tornado_menu_parent_id'), table_name='tornado_menu')
|
||||
op.drop_index(op.f('ix_tornado_menu_name'), table_name='tornado_menu')
|
||||
op.drop_index(op.f('ix_tornado_menu_is_delete'), table_name='tornado_menu')
|
||||
op.drop_table('tornado_menu')
|
||||
op.drop_index(op.f('ix_tornado_login_log_username'), table_name='tornado_login_log')
|
||||
op.drop_index(op.f('ix_tornado_login_log_log_type'), table_name='tornado_login_log')
|
||||
op.drop_index(op.f('ix_tornado_login_log_is_delete'), table_name='tornado_login_log')
|
||||
op.drop_table('tornado_login_log')
|
||||
op.drop_index(op.f('ix_tornado_link_status'), table_name='tornado_link')
|
||||
op.drop_index(op.f('ix_tornado_link_name'), table_name='tornado_link')
|
||||
op.drop_index(op.f('ix_tornado_link_is_delete'), table_name='tornado_link')
|
||||
op.drop_table('tornado_link')
|
||||
op.drop_index(op.f('ix_tornado_level_status'), table_name='tornado_level')
|
||||
op.drop_index(op.f('ix_tornado_level_name'), table_name='tornado_level')
|
||||
op.drop_index(op.f('ix_tornado_level_is_delete'), table_name='tornado_level')
|
||||
op.drop_table('tornado_level')
|
||||
op.drop_index(op.f('ix_tornado_job_log_status'), table_name='tornado_job_log')
|
||||
op.drop_index(op.f('ix_tornado_job_log_job_id'), table_name='tornado_job_log')
|
||||
op.drop_index(op.f('ix_tornado_job_log_is_delete'), table_name='tornado_job_log')
|
||||
op.drop_table('tornado_job_log')
|
||||
op.drop_index(op.f('ix_tornado_job_status'), table_name='tornado_job')
|
||||
op.drop_index(op.f('ix_tornado_job_job_name'), table_name='tornado_job')
|
||||
op.drop_index(op.f('ix_tornado_job_is_delete'), table_name='tornado_job')
|
||||
op.drop_table('tornado_job')
|
||||
op.drop_index(op.f('ix_tornado_file_template_name'), table_name='tornado_file_template')
|
||||
op.drop_index(op.f('ix_tornado_file_template_is_delete'), table_name='tornado_file_template')
|
||||
op.drop_index(op.f('ix_tornado_file_template_code'), table_name='tornado_file_template')
|
||||
op.drop_table('tornado_file_template')
|
||||
op.drop_index(op.f('ix_tornado_dict_item_name'), table_name='tornado_dict_item')
|
||||
op.drop_index(op.f('ix_tornado_dict_item_is_delete'), table_name='tornado_dict_item')
|
||||
op.drop_index(op.f('ix_tornado_dict_item_dict_id'), table_name='tornado_dict_item')
|
||||
op.drop_table('tornado_dict_item')
|
||||
op.drop_index(op.f('ix_tornado_dict_name'), table_name='tornado_dict')
|
||||
op.drop_index(op.f('ix_tornado_dict_is_delete'), table_name='tornado_dict')
|
||||
op.drop_index(op.f('ix_tornado_dict_code'), table_name='tornado_dict')
|
||||
op.drop_table('tornado_dict')
|
||||
op.drop_index(op.f('ix_tornado_dept_parent_id'), table_name='tornado_dept')
|
||||
op.drop_index(op.f('ix_tornado_dept_name'), table_name='tornado_dept')
|
||||
op.drop_index(op.f('ix_tornado_dept_is_delete'), table_name='tornado_dept')
|
||||
op.drop_table('tornado_dept')
|
||||
op.drop_index(op.f('ix_tornado_config_item_status'), table_name='tornado_config_item')
|
||||
op.drop_index(op.f('ix_tornado_config_item_name'), table_name='tornado_config_item')
|
||||
op.drop_index(op.f('ix_tornado_config_item_is_delete'), table_name='tornado_config_item')
|
||||
op.drop_index(op.f('ix_tornado_config_item_config_id'), table_name='tornado_config_item')
|
||||
op.drop_table('tornado_config_item')
|
||||
op.drop_index(op.f('ix_tornado_config_name'), table_name='tornado_config')
|
||||
op.drop_index(op.f('ix_tornado_config_is_delete'), table_name='tornado_config')
|
||||
op.drop_index(op.f('ix_tornado_config_code'), table_name='tornado_config')
|
||||
op.drop_table('tornado_config')
|
||||
op.drop_index(op.f('ix_tornado_city_pid'), table_name='tornado_city')
|
||||
op.drop_index(op.f('ix_tornado_city_parent_code'), table_name='tornado_city')
|
||||
op.drop_index(op.f('ix_tornado_city_name'), table_name='tornado_city')
|
||||
op.drop_index(op.f('ix_tornado_city_level'), table_name='tornado_city')
|
||||
op.drop_index(op.f('ix_tornado_city_is_delete'), table_name='tornado_city')
|
||||
op.drop_index(op.f('ix_tornado_city_city_code'), table_name='tornado_city')
|
||||
op.drop_index(op.f('ix_tornado_city_area_code'), table_name='tornado_city')
|
||||
op.drop_table('tornado_city')
|
||||
op.drop_index(op.f('ix_tornado_category_parent_id'), table_name='tornado_category')
|
||||
op.drop_index(op.f('ix_tornado_category_is_delete'), table_name='tornado_category')
|
||||
op.drop_index(op.f('ix_tornado_category_category_name'), table_name='tornado_category')
|
||||
op.drop_table('tornado_category')
|
||||
op.drop_index(op.f('ix_tornado_article_title'), table_name='tornado_article')
|
||||
op.drop_index(op.f('ix_tornado_article_status'), table_name='tornado_article')
|
||||
op.drop_index(op.f('ix_tornado_article_is_delete'), table_name='tornado_article')
|
||||
op.drop_index(op.f('ix_tornado_article_category_id'), table_name='tornado_article')
|
||||
op.drop_table('tornado_article')
|
||||
# ### end Alembic commands ###
|
||||
Reference in New Issue
Block a user