mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-11-09 23:30:13 +08:00
_PluginBase 新增 get_database_models()/get_database_migrations() 声明钩子 与 get_database() 句柄入口,按类名(含分身)解析插件标识; app/sdk/database.py 导出 plugin_declarative_base 与 PluginDatabaseHandle。 docs/rules/10-data-and-persistent.md 补充 Plugin-Owned Databases 小节, 说明 db_query/db_update 的自动兜底仍绑定宿主会话、需显式传入插件会话。
32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
"""插件可使用的数据库备份只读门面和自有数据库入口。"""
|
|
|
|
from app.application.backup import BackupArtifact, BackupVerification
|
|
from app.application.database import get_database_governance as _get_database_governance
|
|
from app.db.plugin.base import plugin_declarative_base
|
|
from app.db.plugin.container import PluginDatabaseHandle
|
|
|
|
__all__ = [
|
|
"BackupArtifact",
|
|
"BackupVerification",
|
|
"PluginDatabaseHandle",
|
|
"create_backup",
|
|
"list_backups",
|
|
"plugin_declarative_base",
|
|
"verify_backup",
|
|
]
|
|
|
|
|
|
def create_backup() -> BackupArtifact:
|
|
"""在宿主管理目录中创建当前数据库的一致备份。"""
|
|
return _get_database_governance().create_backup()
|
|
|
|
|
|
def list_backups() -> tuple[BackupArtifact, ...]:
|
|
"""列出宿主管理目录中的数据库备份。"""
|
|
return _get_database_governance().list_backups()
|
|
|
|
|
|
def verify_backup(name: str) -> BackupVerification:
|
|
"""按文件名校验一个宿主管理的数据库备份。"""
|
|
return _get_database_governance().verify_backup(name)
|