174 lines
4.6 KiB
Python
174 lines
4.6 KiB
Python
# 显式导入所有模型模块,添加新的模型类所在模块(users模块)的导入
|
||
from mooc.models.admin import * # noqa
|
||
from mooc.models.account import * # noqa
|
||
from mooc.models.uni_account import * # noqa
|
||
from mooc.models.core import * # noqa
|
||
from mooc.models.userapi import * # noqa
|
||
from mooc.models.users import * # noqa # 新增导入,确保能识别users.py里的模型类所在模块
|
||
|
||
# 导出常用的模型类
|
||
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
|
||
)
|
||
|
||
from mooc.models.core import (
|
||
ImsCoreCache,
|
||
ImsCoreCron,
|
||
ImsCoreCronRecord,
|
||
ImsCoreJob,
|
||
ImsCoreMenu,
|
||
ImsCoreMenuShortcut,
|
||
ImsCorePaylog,
|
||
ImsCorePerformance,
|
||
ImsCoreQueue,
|
||
ImsCoreRefundlog,
|
||
ImsCoreResource,
|
||
ImsCoreSendsmsLog,
|
||
ImsCoreSessions,
|
||
ImsCoreSettings
|
||
)
|
||
|
||
from mooc.models.userapi import (
|
||
ImsUserapiCache,
|
||
ImsUserapiReply
|
||
)
|
||
|
||
from mooc.models.users import (
|
||
ImsUsers,
|
||
ImsUsersBind,
|
||
ImsUsersCreateGroup,
|
||
ImsUsersGroup,
|
||
ImsUsersInvitation,
|
||
ImsUsersLastUse,
|
||
ImsUsersLoginLogs,
|
||
ImsUsersOperateHistory,
|
||
ImsUsersOperateStar,
|
||
ImsUsersPermission,
|
||
ImsUsersProfile,
|
||
ImsUsersExtraGroup,
|
||
ImsUsersExtraLimit,
|
||
ImsUsersExtraModules,
|
||
ImsUsersExtraTemplates,
|
||
ImsUsersFailedLogin,
|
||
ImsUsersFounderGroup,
|
||
ImsUsersFounderOwnCreateGroups,
|
||
ImsUsersFounderOwnUniGroups,
|
||
ImsUsersFounderOwnUsers,
|
||
ImsUsersFounderOwnUsersGroups
|
||
)
|
||
|
||
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',
|
||
|
||
# ImsCore 相关表名
|
||
"ims_core_cache",
|
||
"ims_core_cron",
|
||
"ims_core_cron_record",
|
||
"ims_core_job",
|
||
"ims_core_menu",
|
||
"ims_core_menu_shortcut",
|
||
"ims_core_paylog",
|
||
"ims_core_performance",
|
||
"ims_core_queue",
|
||
"ims_core_refundlog",
|
||
"ims_core_resource",
|
||
"ims_core_sendsms_log",
|
||
"ims_core_sessions",
|
||
"ims_core_settings",
|
||
|
||
# ImsUserapi 相关表名
|
||
"ims_userapi_cache",
|
||
"ims_userapi_reply",
|
||
|
||
# ImsUsers 相关表名
|
||
"ims_users",
|
||
"ims_users_bind",
|
||
"ims_users_create_group",
|
||
"ims_users_group",
|
||
"ims_users_invitation",
|
||
"ims_users_lastuse",
|
||
"ims_users_login_logs",
|
||
"ims_users_operate_history",
|
||
"ims_users_operate_star",
|
||
"ims_users_permission",
|
||
"ims_users_profile",
|
||
"ims_users_extra_group",
|
||
"ims_users_extra_limit",
|
||
"ims_users_extra_modules",
|
||
"ims_users_extra_templates",
|
||
"ims_users_failed_login",
|
||
"ims_users_founder_group",
|
||
"ims_users_founder_own_create_groups",
|
||
"ims_users_founder_own_uni_groups",
|
||
"ims_users_founder_own_users",
|
||
"ims_users_founder_own_users_groups"
|
||
}
|
||
|
||
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()) |