From 0f8c2d3fc955297ecd02872ee8acfa5c6eda2555 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 20 Jul 2024 08:47:26 +0800 Subject: [PATCH] fix db init --- app/db/init.py | 28 +------------- app/main.py | 4 +- database/versions/294b007932ef_2_0_0.py | 49 +++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 database/versions/294b007932ef_2_0_0.py diff --git a/app/db/init.py b/app/db/init.py index a8f004c0..abc595e7 100644 --- a/app/db/init.py +++ b/app/db/init.py @@ -1,13 +1,8 @@ -import random -import string - from alembic.command import upgrade from alembic.config import Config from app.core.config import settings -from app.core.security import get_password_hash -from app.db import Engine, SessionFactory, Base -from app.db.models import * +from app.db import Engine, Base from app.log import logger @@ -19,27 +14,6 @@ def init_db(): Base.metadata.create_all(bind=Engine) -def init_super_user(): - """ - 初始化超级管理员 - """ - # 初始化超级管理员 - with SessionFactory() as db: - _user = User.get_by_name(db=db, name=settings.SUPERUSER) - if not _user: - # 定义包含数字、大小写字母的字符集合 - characters = string.ascii_letters + string.digits - # 生成随机密码 - random_password = ''.join(random.choice(characters) for _ in range(16)) - logger.info(f"【超级管理员初始密码】{random_password} 请登录系统后在设定中修改。 注:该密码只会显示一次,请注意保存。") - _user = User( - name=settings.SUPERUSER, - hashed_password=get_password_hash(random_password), - is_superuser=True, - ) - _user.create(db) - - def update_db(): """ 更新数据库 diff --git a/app/main.py b/app/main.py index 4a5a8a56..94516327 100644 --- a/app/main.py +++ b/app/main.py @@ -21,7 +21,7 @@ if SystemUtils.is_frozen(): from app.core.config import settings, global_vars from app.core.module import ModuleManager from app.core.plugin import PluginManager -from app.db.init import init_db, update_db, init_super_user +from app.db.init import init_db, update_db from app.helper.thread import ThreadHelper from app.helper.display import DisplayHelper from app.helper.resource import ResourceHelper @@ -210,8 +210,6 @@ def start_module(): """ 启动模块 """ - # 初始化超级管理员 - init_super_user() # 虚拟显示 DisplayHelper() # 站点管理 diff --git a/database/versions/294b007932ef_2_0_0.py b/database/versions/294b007932ef_2_0_0.py new file mode 100644 index 00000000..f725e963 --- /dev/null +++ b/database/versions/294b007932ef_2_0_0.py @@ -0,0 +1,49 @@ +"""2.0.0 + +Revision ID: 294b007932ef +Revises: +Create Date: 2024-07-20 08:43:40.741251 + +""" + +import random +import string + +from app.core.config import settings +from app.core.security import get_password_hash +from app.db import SessionFactory +from app.db.models import * +from app.log import logger + +# revision identifiers, used by Alembic. +revision = '294b007932ef' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade() -> None: + """ + v2.0.0 数据库初始化 + """ + # 初始化超级管理员 + with SessionFactory() as db: + _user = User.get_by_name(db=db, name=settings.SUPERUSER) + if not _user: + # 定义包含数字、大小写字母的字符集合 + characters = string.ascii_letters + string.digits + # 生成随机密码 + random_password = ''.join(random.choice(characters) for _ in range(16)) + logger.info( + f"【超级管理员初始密码】{random_password} 请登录系统后在设定中修改。 注:该密码只会显示一次,请注意保存。") + _user = User( + name=settings.SUPERUSER, + hashed_password=get_password_hash(random_password), + email="admin@movie-pilot.org", + is_superuser=True, + ) + _user.create(db) + + +def downgrade() -> None: + pass