- 修复二进制打包插件表缺失的问题
This commit is contained in:
parent
7d73cdef33
commit
0214beb679
@ -9,6 +9,7 @@ from app.core.security import get_password_hash
|
||||
from app.db import Engine, SessionFactory
|
||||
from app.db.models import Base
|
||||
from app.db.models.user import User
|
||||
from app.helper.module import ModuleHelper
|
||||
from app.log import logger
|
||||
|
||||
|
||||
@ -17,8 +18,8 @@ def init_db():
|
||||
初始化数据库
|
||||
"""
|
||||
# 导入模块,避免建表缺失
|
||||
for module in Path(__file__).with_name("models").glob("*.py"):
|
||||
importlib.import_module(f"app.db.models.{module.stem}")
|
||||
models_path = Path(__file__).with_name("models")
|
||||
ModuleHelper.dynamic_import_all_modules(models_path, "app.db.models")
|
||||
# 全量建表
|
||||
Base.metadata.create_all(bind=Engine)
|
||||
# 初始化超级管理员
|
||||
|
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import importlib
|
||||
import pkgutil
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class ModuleHelper:
|
||||
@ -35,3 +36,26 @@ class ModuleHelper:
|
||||
print(f'加载模块 {package_name} 失败:{err}')
|
||||
|
||||
return submodules
|
||||
|
||||
@staticmethod
|
||||
def dynamic_import_all_modules(base_path: Path, package_name: str):
|
||||
"""
|
||||
动态导入所有模块到全局对象
|
||||
"""
|
||||
modules = []
|
||||
# 遍历文件夹,找到所有模块文件
|
||||
for file in base_path.glob("*.py"):
|
||||
file_name = file.stem
|
||||
if file_name != "__init__":
|
||||
modules.append(file_name)
|
||||
# 保存已有的全局对象
|
||||
existing_globals = set(globals().keys())
|
||||
# 动态导入并添加到全局命名空间
|
||||
for module in modules:
|
||||
full_module_name = f"{package_name}.{module}"
|
||||
import_module = importlib.import_module(full_module_name)
|
||||
module_globals = import_module.__dict__
|
||||
# 仅导入全局对象中不存在的部分
|
||||
new_objects = {name: value for name, value in module_globals.items() if name not in existing_globals}
|
||||
# 更新全局命名空间
|
||||
globals().update(new_objects)
|
||||
|
@ -1 +1 @@
|
||||
APP_VERSION = 'v1.4.8'
|
||||
APP_VERSION = 'v1.4.8-1'
|
||||
|
Loading…
x
Reference in New Issue
Block a user