项目初次提交

This commit is contained in:
2025-04-11 08:54:28 +08:00
commit 9e14a3256f
220 changed files with 15673 additions and 0 deletions

1
alembic/README Normal file
View File

@ -0,0 +1 @@
Generic single-database configuration.

95
alembic/env.py Normal file
View File

@ -0,0 +1,95 @@
from logging.config import fileConfig
from sqlalchemy import engine_from_config
from sqlalchemy import pool
from alembic import context
import os
import sys
from core.database import Base
# this is the Alembic Config object, which provides
# access to the values within the .ini file in use.
config = context.config
# Interpret the config file for Python logging.
# This line sets up loggers basically.
fileConfig(config.config_file_name)
# add your model's MetaData object here
# for 'autogenerate' support
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata
# target_metadata = None
# other values from the config, defined by the needs of env.py,
# can be acquired:
# my_important_option = config.get_main_option("my_important_option")
# ... etc.
# 添加当前项目路径到环境变量
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
# 导入项目中的基本映射类,与 需要迁移的 ORM 模型
from apps.vadmin.auth.models import *
from apps.vadmin.system.models import *
from apps.vadmin.record.models import *
from apps.vadmin.help.models import *
from apps.vadmin.resource.models import *
from apps.business.project.models.project import *
from apps.business.train.models.train import *
from apps.business.detect.models.detect import *
# 修改配置中的参数
target_metadata = Base.metadata
def run_migrations_offline():
"""
以“脱机”模式运行迁移。
"""
url = config.get_main_option("sqlalchemy.url")
context.configure(
url=url,
target_metadata=target_metadata,
literal_binds=True,
dialect_opts={"paramstyle": "named"},
compare_type=True, # 是否检查字段类型,字段长度
compare_server_default=True # 是否比较在数据库中的默认值
)
with context.begin_transaction():
context.run_migrations()
def run_migrations_online():
"""
以“在线”模式运行迁移。
"""
connectable = engine_from_config(
config.get_section(config.config_ini_section),
prefix="sqlalchemy.",
poolclass=pool.NullPool,
)
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata,
compare_type=True, # 是否检查字段类型,字段长度
compare_server_default=True # 是否比较在数据库中的默认值
)
with context.begin_transaction():
context.run_migrations()
if context.is_offline_mode():
print("offline")
run_migrations_offline()
else:
print("online")
run_migrations_online()

24
alembic/script.py.mako Normal file
View File

@ -0,0 +1,24 @@
"""${message}
Revision ID: ${up_revision}
Revises: ${down_revision | comma,n}
Create Date: ${create_date}
"""
from alembic import op
import sqlalchemy as sa
${imports if imports else ""}
# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}
branch_labels = ${repr(branch_labels)}
depends_on = ${repr(depends_on)}
def upgrade():
${upgrades if upgrades else "pass"}
def downgrade():
${downgrades if downgrades else "pass"}

View File

View File

@ -0,0 +1,468 @@
"""3.10.1
Revision ID: 655d3fa2c68d
Revises: e2dec87a3d12
Create Date: 2025-04-03 10:19:06.323166
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import mysql
# revision identifiers, used by Alembic.
revision = '655d3fa2c68d'
down_revision = 'e2dec87a3d12'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('project_detect',
sa.Column('project_id', sa.Integer(), nullable=False),
sa.Column('detect_name', sa.String(length=64), nullable=False),
sa.Column('detect_version', sa.Integer(), nullable=False),
sa.Column('detect_no', sa.String(length=32), nullable=False),
sa.Column('detect_status', sa.Integer(), nullable=False),
sa.Column('file_type', sa.String(length=10), nullable=False),
sa.Column('folder_url', sa.String(length=255), nullable=False),
sa.Column('rtsp_url', sa.String(length=255), nullable=False),
sa.Column('user_id', sa.Integer(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='项目推理集合'
)
op.create_table('project_detect_img',
sa.Column('detect_id', sa.Integer(), nullable=False),
sa.Column('file_name', sa.String(length=64), nullable=False),
sa.Column('image_url', sa.String(length=255), nullable=False),
sa.Column('thumb_image_url', sa.String(length=255), nullable=False),
sa.Column('user_id', sa.Integer(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='待推理图片'
)
op.create_table('project_detect_log',
sa.Column('detect_id', sa.Integer(), nullable=False),
sa.Column('detect_version', sa.String(length=10), nullable=False),
sa.Column('detect_name', sa.String(length=64), nullable=False),
sa.Column('train_id', sa.Integer(), nullable=False),
sa.Column('train_version', sa.String(length=10), nullable=False),
sa.Column('pt_type', sa.String(length=10), nullable=False),
sa.Column('pt_url', sa.String(length=255), nullable=False),
sa.Column('folder_url', sa.String(length=255), nullable=False),
sa.Column('detect_folder_url', sa.String(length=255), nullable=False),
sa.Column('user_id', sa.Integer(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='项目推理记录'
)
op.create_table('project_detect_log_img',
sa.Column('log_id', sa.Integer(), nullable=False),
sa.Column('file_name', sa.String(length=64), nullable=False),
sa.Column('image_url', sa.String(length=255), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='项目训练版本信息表'
)
op.create_table('project_image',
sa.Column('img_type', sa.String(length=10), nullable=False),
sa.Column('file_name', sa.String(length=64), nullable=False),
sa.Column('image_url', sa.String(length=255), nullable=False),
sa.Column('thumb_image_url', sa.String(length=255), nullable=False),
sa.Column('project_id', sa.Integer(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='项目图片表'
)
op.create_table('project_img_label',
sa.Column('image_id', sa.Integer(), nullable=False),
sa.Column('label_id', sa.Integer(), nullable=False),
sa.Column('mark_center_x', sa.String(length=64), nullable=False),
sa.Column('mark_center_y', sa.String(length=64), nullable=False),
sa.Column('mark_width', sa.String(length=64), nullable=False),
sa.Column('mark_height', sa.String(length=64), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='项目图片标签对应表一张图片对应多个label'
)
op.create_table('project_img_leafer',
sa.Column('image_id', sa.Integer(), nullable=False),
sa.Column('leafer', sa.JSON(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='项目图片leafer表'
)
op.create_table('project_info',
sa.Column('project_no', sa.String(length=32), nullable=False),
sa.Column('project_name', sa.String(length=32), nullable=False),
sa.Column('type_code', sa.String(length=10), nullable=False),
sa.Column('description', sa.String(length=255), nullable=False),
sa.Column('project_status', sa.String(length=10), nullable=False),
sa.Column('user_id', sa.Integer(), nullable=False),
sa.Column('dept_id', sa.Integer(), nullable=False),
sa.Column('train_version', sa.Integer(), nullable=False),
sa.Column('del_flag', sa.Integer(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('project_name'),
sa.UniqueConstraint('project_no'),
comment='项目类别表 - 标识项目的类型目前存在的目标识别OCR识别瑕疵检测图像分类'
)
op.create_table('project_label',
sa.Column('label_name', sa.String(length=32), nullable=False),
sa.Column('project_id', sa.Integer(), nullable=False),
sa.Column('meta', sa.JSON(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('label_name'),
comment='项目标签表'
)
op.create_table('project_train',
sa.Column('project_id', sa.Integer(), nullable=False),
sa.Column('train_version', sa.String(length=32), nullable=False),
sa.Column('train_url', sa.String(length=255), nullable=False),
sa.Column('train_data', sa.String(length=255), nullable=False),
sa.Column('weights_id', sa.Integer(), nullable=False),
sa.Column('weights_name', sa.String(length=32), nullable=False),
sa.Column('epochs', sa.Integer(), nullable=False),
sa.Column('patience', sa.Integer(), nullable=False),
sa.Column('best_pt', sa.String(length=255), nullable=False),
sa.Column('last_pt', sa.String(length=255), nullable=False),
sa.Column('user_id', sa.Integer(), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='项目训练版本信息表'
)
op.create_table('project_type',
sa.Column('type_code', sa.String(length=20), nullable=False),
sa.Column('type_name', sa.String(length=20), nullable=False),
sa.Column('icon_path', sa.String(length=255), nullable=False),
sa.Column('description', sa.String(length=255), nullable=False),
sa.Column('type_status', sa.String(length=10), nullable=False),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('type_code'),
comment='项目类别表 - 标识项目的类型目前存在的目标识别OCR识别瑕疵检测图像分类'
)
op.alter_column('vadmin_auth_dept', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_dept', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_menu', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_menu', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_role', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_role', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_user', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_user', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue_category', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue_category', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_record_login', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_record_login', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_record_sms_send', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_record_sms_send', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_resource_images', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_resource_images', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_details', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_details', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_type', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_type', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings_tab', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings_tab', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('vadmin_system_settings_tab', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings_tab', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_type', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_type', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_details', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_details', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_resource_images', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_resource_images', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_record_sms_send', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_record_sms_send', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_record_login', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_record_login', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue_category', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue_category', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_user', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_user', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_role', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_role', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_menu', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_menu', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_dept', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_dept', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.drop_table('project_type')
op.drop_table('project_train')
op.drop_table('project_label')
op.drop_table('project_info')
op.drop_table('project_img_leafer')
op.drop_table('project_img_label')
op.drop_table('project_image')
op.drop_table('project_detect_log_img')
op.drop_table('project_detect_log')
op.drop_table('project_detect_img')
op.drop_table('project_detect')
# ### end Alembic commands ###

View File

@ -0,0 +1,335 @@
"""3.10.1
Revision ID: df17d7155cb6
Revises:
Create Date: 2025-04-03 09:36:50.773434
"""
from alembic import op
import sqlalchemy as sa
# revision identifiers, used by Alembic.
revision = 'df17d7155cb6'
down_revision = None
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('vadmin_auth_dept',
sa.Column('name', sa.String(length=50), nullable=False, comment='部门名称'),
sa.Column('dept_key', sa.String(length=50), nullable=False, comment='部门标识'),
sa.Column('disabled', sa.Boolean(), nullable=False, comment='是否禁用'),
sa.Column('order', sa.Integer(), nullable=True, comment='显示排序'),
sa.Column('desc', sa.String(length=255), nullable=True, comment='描述'),
sa.Column('owner', sa.String(length=255), nullable=True, comment='负责人'),
sa.Column('phone', sa.String(length=255), nullable=True, comment='联系电话'),
sa.Column('email', sa.String(length=255), nullable=True, comment='邮箱'),
sa.Column('parent_id', sa.Integer(), nullable=True, comment='上级部门'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.ForeignKeyConstraint(['parent_id'], ['vadmin_auth_dept.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'),
comment='部门表'
)
op.create_index(op.f('ix_vadmin_auth_dept_dept_key'), 'vadmin_auth_dept', ['dept_key'], unique=False)
op.create_index(op.f('ix_vadmin_auth_dept_name'), 'vadmin_auth_dept', ['name'], unique=False)
op.create_table('vadmin_auth_menu',
sa.Column('title', sa.String(length=50), nullable=False, comment='名称'),
sa.Column('icon', sa.String(length=50), nullable=True, comment='菜单图标'),
sa.Column('redirect', sa.String(length=100), nullable=True, comment='重定向地址'),
sa.Column('component', sa.String(length=255), nullable=True, comment='前端组件地址'),
sa.Column('path', sa.String(length=50), nullable=True, comment='前端路由地址'),
sa.Column('disabled', sa.Boolean(), nullable=False, comment='是否禁用'),
sa.Column('hidden', sa.Boolean(), nullable=False, comment='是否隐藏'),
sa.Column('order', sa.Integer(), nullable=False, comment='排序'),
sa.Column('menu_type', sa.String(length=8), nullable=False, comment='菜单类型'),
sa.Column('parent_id', sa.Integer(), nullable=True, comment='父菜单'),
sa.Column('perms', sa.String(length=50), nullable=True, comment='权限标识'),
sa.Column('noCache', sa.Boolean(), nullable=False, comment='如果设置为true则不会被 <keep-alive> 缓存(默认 false)'),
sa.Column('breadcrumb', sa.Boolean(), nullable=False, comment='如果设置为false则不会在breadcrumb面包屑中显示(默认 true)'),
sa.Column('affix', sa.Boolean(), nullable=False, comment='如果设置为true则会一直固定在tag项中(默认 false)'),
sa.Column('noTagsView', sa.Boolean(), nullable=False, comment='如果设置为true则不会出现在tag中(默认 false)'),
sa.Column('canTo', sa.Boolean(), nullable=False, comment='设置为true即使hidden为true也依然可以进行路由跳转(默认 false)'),
sa.Column('alwaysShow', sa.Boolean(), nullable=False, comment='当你一个路由下面的 children 声明的路由大于1个时自动会变成嵌套的模式\n 只有一个时,会将那个子路由当做根路由显示在侧边栏,若你想不管路由下面的 children 声明的个数都显示你的根路由,\n 你可以设置 alwaysShow: true这样它就会忽略之前定义的规则一直显示根路由(默认 true)'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.ForeignKeyConstraint(['parent_id'], ['vadmin_auth_menu.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'),
comment='菜单表'
)
op.create_index(op.f('ix_vadmin_auth_menu_perms'), 'vadmin_auth_menu', ['perms'], unique=False)
op.create_table('vadmin_auth_role',
sa.Column('name', sa.String(length=50), nullable=False, comment='名称'),
sa.Column('role_key', sa.String(length=50), nullable=False, comment='权限字符'),
sa.Column('data_range', sa.Integer(), nullable=False, comment='数据权限范围'),
sa.Column('disabled', sa.Boolean(), nullable=False, comment='是否禁用'),
sa.Column('order', sa.Integer(), nullable=True, comment='排序'),
sa.Column('desc', sa.String(length=255), nullable=True, comment='描述'),
sa.Column('is_admin', sa.Boolean(), nullable=False, comment='是否为超级角色'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='角色表'
)
op.create_index(op.f('ix_vadmin_auth_role_name'), 'vadmin_auth_role', ['name'], unique=False)
op.create_index(op.f('ix_vadmin_auth_role_role_key'), 'vadmin_auth_role', ['role_key'], unique=False)
op.create_table('vadmin_auth_user',
sa.Column('avatar', sa.String(length=500), nullable=True, comment='头像'),
sa.Column('telephone', sa.String(length=11), nullable=False, comment='手机号'),
sa.Column('email', sa.String(length=50), nullable=True, comment='邮箱地址'),
sa.Column('name', sa.String(length=50), nullable=False, comment='姓名'),
sa.Column('nickname', sa.String(length=50), nullable=True, comment='昵称'),
sa.Column('password', sa.String(length=255), nullable=True, comment='密码'),
sa.Column('gender', sa.String(length=8), nullable=True, comment='性别'),
sa.Column('is_active', sa.Boolean(), nullable=False, comment='是否可用'),
sa.Column('is_reset_password', sa.Boolean(), nullable=False, comment='是否已经重置密码,没有重置的,登陆系统后必须重置密码'),
sa.Column('last_ip', sa.String(length=50), nullable=True, comment='最后一次登录IP'),
sa.Column('last_login', sa.DateTime(), nullable=True, comment='最近一次登录时间'),
sa.Column('is_staff', sa.Boolean(), nullable=False, comment='是否为工作人员'),
sa.Column('wx_server_openid', sa.String(length=255), nullable=True, comment='服务端微信平台openid'),
sa.Column('is_wx_server_openid', sa.Boolean(), nullable=False, comment='是否已有服务端微信平台openid'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='用户表'
)
op.create_index(op.f('ix_vadmin_auth_user_name'), 'vadmin_auth_user', ['name'], unique=False)
op.create_index(op.f('ix_vadmin_auth_user_telephone'), 'vadmin_auth_user', ['telephone'], unique=False)
op.create_table('vadmin_record_login',
sa.Column('telephone', sa.String(length=255), nullable=False, comment='手机号'),
sa.Column('status', sa.Boolean(), nullable=False, comment='是否登录成功'),
sa.Column('platform', sa.String(length=8), nullable=False, comment='登陆平台'),
sa.Column('login_method', sa.String(length=8), nullable=False, comment='认证方式'),
sa.Column('ip', sa.String(length=50), nullable=True, comment='登陆地址'),
sa.Column('address', sa.String(length=255), nullable=True, comment='登陆地点'),
sa.Column('country', sa.String(length=255), nullable=True, comment='国家'),
sa.Column('province', sa.String(length=255), nullable=True, comment=''),
sa.Column('city', sa.String(length=255), nullable=True, comment='城市'),
sa.Column('county', sa.String(length=255), nullable=True, comment='区/县'),
sa.Column('operator', sa.String(length=255), nullable=True, comment='运营商'),
sa.Column('postal_code', sa.String(length=255), nullable=True, comment='邮政编码'),
sa.Column('area_code', sa.String(length=255), nullable=True, comment='地区区号'),
sa.Column('browser', sa.String(length=50), nullable=True, comment='浏览器'),
sa.Column('system', sa.String(length=50), nullable=True, comment='操作系统'),
sa.Column('response', sa.Text(), nullable=True, comment='响应信息'),
sa.Column('request', sa.Text(), nullable=True, comment='请求信息'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='登录记录表'
)
op.create_index(op.f('ix_vadmin_record_login_telephone'), 'vadmin_record_login', ['telephone'], unique=False)
op.create_table('vadmin_system_dict_type',
sa.Column('dict_name', sa.String(length=50), nullable=False, comment='字典名称'),
sa.Column('dict_type', sa.String(length=50), nullable=False, comment='字典类型'),
sa.Column('disabled', sa.Boolean(), nullable=False, comment='字典状态,是否禁用'),
sa.Column('remark', sa.String(length=255), nullable=True, comment='备注'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='字典类型表'
)
op.create_index(op.f('ix_vadmin_system_dict_type_dict_name'), 'vadmin_system_dict_type', ['dict_name'], unique=False)
op.create_index(op.f('ix_vadmin_system_dict_type_dict_type'), 'vadmin_system_dict_type', ['dict_type'], unique=False)
op.create_table('vadmin_system_settings_tab',
sa.Column('title', sa.String(length=255), nullable=False, comment='标题'),
sa.Column('classify', sa.String(length=255), nullable=False, comment='分类键'),
sa.Column('tab_label', sa.String(length=255), nullable=False, comment='tab标题'),
sa.Column('tab_name', sa.String(length=255), nullable=False, comment='tab标识符'),
sa.Column('hidden', sa.Boolean(), nullable=False, comment='是否隐藏'),
sa.Column('disabled', sa.Boolean(), nullable=False, comment='是否禁用'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.PrimaryKeyConstraint('id'),
comment='系统配置分类表'
)
op.create_index(op.f('ix_vadmin_system_settings_tab_classify'), 'vadmin_system_settings_tab', ['classify'], unique=False)
op.create_index(op.f('ix_vadmin_system_settings_tab_tab_name'), 'vadmin_system_settings_tab', ['tab_name'], unique=True)
op.create_table('vadmin_auth_role_depts',
sa.Column('role_id', sa.Integer(), nullable=True),
sa.Column('dept_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['dept_id'], ['vadmin_auth_dept.id'], ondelete='CASCADE'),
sa.ForeignKeyConstraint(['role_id'], ['vadmin_auth_role.id'], ondelete='CASCADE')
)
op.create_table('vadmin_auth_role_menus',
sa.Column('role_id', sa.Integer(), nullable=True),
sa.Column('menu_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['menu_id'], ['vadmin_auth_menu.id'], ondelete='CASCADE'),
sa.ForeignKeyConstraint(['role_id'], ['vadmin_auth_role.id'], ondelete='CASCADE')
)
op.create_table('vadmin_auth_user_depts',
sa.Column('user_id', sa.Integer(), nullable=True),
sa.Column('dept_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['dept_id'], ['vadmin_auth_dept.id'], ondelete='CASCADE'),
sa.ForeignKeyConstraint(['user_id'], ['vadmin_auth_user.id'], ondelete='CASCADE')
)
op.create_table('vadmin_auth_user_roles',
sa.Column('user_id', sa.Integer(), nullable=True),
sa.Column('role_id', sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(['role_id'], ['vadmin_auth_role.id'], ondelete='CASCADE'),
sa.ForeignKeyConstraint(['user_id'], ['vadmin_auth_user.id'], ondelete='CASCADE')
)
op.create_table('vadmin_help_issue_category',
sa.Column('name', sa.String(length=50), nullable=False, comment='类别名称'),
sa.Column('platform', sa.String(length=8), nullable=False, comment='展示平台'),
sa.Column('is_active', sa.Boolean(), nullable=False, comment='是否可见'),
sa.Column('create_user_id', sa.Integer(), nullable=False, comment='创建人'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.ForeignKeyConstraint(['create_user_id'], ['vadmin_auth_user.id'], ondelete='RESTRICT'),
sa.PrimaryKeyConstraint('id'),
comment='常见问题类别表'
)
op.create_index(op.f('ix_vadmin_help_issue_category_name'), 'vadmin_help_issue_category', ['name'], unique=False)
op.create_index(op.f('ix_vadmin_help_issue_category_platform'), 'vadmin_help_issue_category', ['platform'], unique=False)
op.create_table('vadmin_record_sms_send',
sa.Column('user_id', sa.Integer(), nullable=False, comment='操作人'),
sa.Column('status', sa.Boolean(), nullable=False, comment='发送状态'),
sa.Column('content', sa.String(length=255), nullable=False, comment='发送内容'),
sa.Column('telephone', sa.String(length=11), nullable=False, comment='目标手机号'),
sa.Column('desc', sa.String(length=255), nullable=True, comment='失败描述'),
sa.Column('scene', sa.String(length=50), nullable=True, comment='发送场景'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.ForeignKeyConstraint(['user_id'], ['vadmin_auth_user.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'),
comment='短信发送记录表'
)
op.create_table('vadmin_resource_images',
sa.Column('filename', sa.String(length=255), nullable=False, comment='原图片名称'),
sa.Column('image_url', sa.String(length=500), nullable=False, comment='图片链接'),
sa.Column('create_user_id', sa.Integer(), nullable=False, comment='创建人'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.ForeignKeyConstraint(['create_user_id'], ['vadmin_auth_user.id'], ondelete='RESTRICT'),
sa.PrimaryKeyConstraint('id'),
comment='图片素材表'
)
op.create_table('vadmin_system_dict_details',
sa.Column('label', sa.String(length=50), nullable=False, comment='字典标签'),
sa.Column('value', sa.String(length=50), nullable=False, comment='字典键值'),
sa.Column('disabled', sa.Boolean(), nullable=False, comment='字典状态,是否禁用'),
sa.Column('is_default', sa.Boolean(), nullable=False, comment='是否默认'),
sa.Column('order', sa.Integer(), nullable=False, comment='字典排序'),
sa.Column('dict_type_id', sa.Integer(), nullable=False, comment='关联字典类型'),
sa.Column('remark', sa.String(length=255), nullable=True, comment='备注'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.ForeignKeyConstraint(['dict_type_id'], ['vadmin_system_dict_type.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'),
comment='字典详情表'
)
op.create_index(op.f('ix_vadmin_system_dict_details_label'), 'vadmin_system_dict_details', ['label'], unique=False)
op.create_index(op.f('ix_vadmin_system_dict_details_value'), 'vadmin_system_dict_details', ['value'], unique=False)
op.create_table('vadmin_system_settings',
sa.Column('config_label', sa.String(length=255), nullable=False, comment='配置表标签'),
sa.Column('config_key', sa.String(length=255), nullable=False, comment='配置表键'),
sa.Column('config_value', sa.Text(), nullable=True, comment='配置表内容'),
sa.Column('remark', sa.String(length=255), nullable=True, comment='备注信息'),
sa.Column('disabled', sa.Boolean(), nullable=False, comment='是否禁用'),
sa.Column('tab_id', sa.Integer(), nullable=False, comment='关联tab标签'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.ForeignKeyConstraint(['tab_id'], ['vadmin_system_settings_tab.id'], ondelete='CASCADE'),
sa.PrimaryKeyConstraint('id'),
comment='系统配置表'
)
op.create_index(op.f('ix_vadmin_system_settings_config_key'), 'vadmin_system_settings', ['config_key'], unique=True)
op.create_table('vadmin_help_issue',
sa.Column('category_id', sa.Integer(), nullable=False, comment='类别'),
sa.Column('title', sa.String(length=255), nullable=False, comment='标题'),
sa.Column('content', sa.Text(), nullable=False, comment='内容'),
sa.Column('view_number', sa.Integer(), nullable=False, comment='查看次数'),
sa.Column('is_active', sa.Boolean(), nullable=False, comment='是否可见'),
sa.Column('create_user_id', sa.Integer(), nullable=False, comment='创建人'),
sa.Column('id', sa.Integer(), nullable=False, comment='主键ID'),
sa.Column('create_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='创建时间'),
sa.Column('update_datetime', sa.DateTime(), server_default=sa.text('now()'), nullable=False, comment='更新时间'),
sa.Column('delete_datetime', sa.DateTime(), nullable=True, comment='删除时间'),
sa.Column('is_delete', sa.Boolean(), nullable=False, comment='是否软删除'),
sa.ForeignKeyConstraint(['category_id'], ['vadmin_help_issue_category.id'], ondelete='CASCADE'),
sa.ForeignKeyConstraint(['create_user_id'], ['vadmin_auth_user.id'], ondelete='RESTRICT'),
sa.PrimaryKeyConstraint('id'),
comment='常见问题记录表'
)
op.create_index(op.f('ix_vadmin_help_issue_title'), 'vadmin_help_issue', ['title'], unique=False)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index(op.f('ix_vadmin_help_issue_title'), table_name='vadmin_help_issue')
op.drop_table('vadmin_help_issue')
op.drop_index(op.f('ix_vadmin_system_settings_config_key'), table_name='vadmin_system_settings')
op.drop_table('vadmin_system_settings')
op.drop_index(op.f('ix_vadmin_system_dict_details_value'), table_name='vadmin_system_dict_details')
op.drop_index(op.f('ix_vadmin_system_dict_details_label'), table_name='vadmin_system_dict_details')
op.drop_table('vadmin_system_dict_details')
op.drop_table('vadmin_resource_images')
op.drop_table('vadmin_record_sms_send')
op.drop_index(op.f('ix_vadmin_help_issue_category_platform'), table_name='vadmin_help_issue_category')
op.drop_index(op.f('ix_vadmin_help_issue_category_name'), table_name='vadmin_help_issue_category')
op.drop_table('vadmin_help_issue_category')
op.drop_table('vadmin_auth_user_roles')
op.drop_table('vadmin_auth_user_depts')
op.drop_table('vadmin_auth_role_menus')
op.drop_table('vadmin_auth_role_depts')
op.drop_index(op.f('ix_vadmin_system_settings_tab_tab_name'), table_name='vadmin_system_settings_tab')
op.drop_index(op.f('ix_vadmin_system_settings_tab_classify'), table_name='vadmin_system_settings_tab')
op.drop_table('vadmin_system_settings_tab')
op.drop_index(op.f('ix_vadmin_system_dict_type_dict_type'), table_name='vadmin_system_dict_type')
op.drop_index(op.f('ix_vadmin_system_dict_type_dict_name'), table_name='vadmin_system_dict_type')
op.drop_table('vadmin_system_dict_type')
op.drop_index(op.f('ix_vadmin_record_login_telephone'), table_name='vadmin_record_login')
op.drop_table('vadmin_record_login')
op.drop_index(op.f('ix_vadmin_auth_user_telephone'), table_name='vadmin_auth_user')
op.drop_index(op.f('ix_vadmin_auth_user_name'), table_name='vadmin_auth_user')
op.drop_table('vadmin_auth_user')
op.drop_index(op.f('ix_vadmin_auth_role_role_key'), table_name='vadmin_auth_role')
op.drop_index(op.f('ix_vadmin_auth_role_name'), table_name='vadmin_auth_role')
op.drop_table('vadmin_auth_role')
op.drop_index(op.f('ix_vadmin_auth_menu_perms'), table_name='vadmin_auth_menu')
op.drop_table('vadmin_auth_menu')
op.drop_index(op.f('ix_vadmin_auth_dept_name'), table_name='vadmin_auth_dept')
op.drop_index(op.f('ix_vadmin_auth_dept_dept_key'), table_name='vadmin_auth_dept')
op.drop_table('vadmin_auth_dept')
# ### end Alembic commands ###

View File

@ -0,0 +1,286 @@
"""3.10.1
Revision ID: e2dec87a3d12
Revises: df17d7155cb6
Create Date: 2025-04-03 10:15:27.587731
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import mysql
# revision identifiers, used by Alembic.
revision = 'e2dec87a3d12'
down_revision = 'df17d7155cb6'
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('vadmin_auth_dept', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_dept', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_menu', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_menu', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_role', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_role', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_user', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_user', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue_category', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue_category', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_record_login', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_record_login', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_record_sms_send', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_record_sms_send', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_resource_images', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_resource_images', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_details', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_details', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_type', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_type', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings_tab', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings_tab', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('now()'),
existing_comment='更新时间',
existing_nullable=False)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('vadmin_system_settings_tab', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings_tab', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_settings', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_type', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_type', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_details', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_system_dict_details', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_resource_images', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_resource_images', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_record_sms_send', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_record_sms_send', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_record_login', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_record_login', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue_category', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue_category', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_help_issue', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_user', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_user', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_role', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_role', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_menu', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_menu', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
op.alter_column('vadmin_auth_dept', 'update_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='更新时间',
existing_nullable=False)
op.alter_column('vadmin_auth_dept', 'create_datetime',
existing_type=mysql.DATETIME(),
server_default=sa.text('CURRENT_TIMESTAMP'),
existing_comment='创建时间',
existing_nullable=False)
# ### end Alembic commands ###

View File