Program/mooc/models/__init__.py

83 lines
2.1 KiB
Python
Raw Normal View History

2025-01-04 01:13:47 +08:00
# 显式导入所有模型模块
from mooc.models.admin import * # noqa
from mooc.models.account import * # noqa
from mooc.models.uni_account import * # noqa
# 导出常用的模型类
from mooc.models.account import (
Account,
AccountWechats,
AccountAliapp,
AccountBaiduapp,
AccountPhoneapp,
AccountToutiaoapp,
AccountWebapp,
AccountWxapp,
AccountXzapp
)
from mooc.models.uni_account import (
UniAccount,
UniAccountExtraModules,
UniAccountGroup,
UniAccountMenus,
UniAccountModules,
UniAccountModulesShortcut,
UniAccountUsers,
UniGroup,
UniLinkUniacid,
UniModules,
UniSettings,
UniVerifycode
)
def verify_all_models():
"""验证所有模型是否已正确注册到Base.metadata"""
from mooc.db.database import Base
# 所有预期的表名
expected_tables = {
'ims_goouc_fullexam_admin',
# Account 相关表
'ims_account',
'ims_account_aliapp',
'ims_account_baiduapp',
'ims_account_phoneapp',
'ims_account_toutiaoapp',
'ims_account_webapp',
'ims_account_wechats',
'ims_account_wxapp',
'ims_account_xzapp',
# UniAccount 相关表
'ims_uni_account',
'ims_uni_account_extra_modules',
'ims_uni_account_group',
'ims_uni_account_menus',
'ims_uni_account_modules',
'ims_uni_account_modules_shortcut',
'ims_uni_account_users',
'ims_uni_group',
'ims_uni_link_uniacid',
'ims_uni_modules',
'ims_uni_settings',
'ims_uni_verifycode'
}
actual_tables = set(Base.metadata.tables.keys())
missing_tables = expected_tables - actual_tables
extra_tables = actual_tables - expected_tables
if missing_tables:
raise RuntimeError(f"Missing tables in metadata: {missing_tables}")
if extra_tables:
print(f"Warning: Found unexpected tables: {extra_tables}")
return True
def get_all_table_names():
"""获取所有已注册的表名"""
from mooc.db.database import Base
return sorted(Base.metadata.tables.keys())