Files
MoviePilot/app/sdk/database.py
Aqr-K 626d8217ba feat(plugin): 开放插件自有数据库声明与句柄接口
_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 的自动兜底仍绑定宿主会话、需显式传入插件会话。
2026-09-02 02:14:19 -04:00

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)