签入版本

This commit is contained in:
2026-09-16 12:24:11 +08:00
commit ffceabfa8a
830 changed files with 105014 additions and 0 deletions
+635
View File
@@ -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 ###