# 显式导入所有模型模块 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())