feat(database): add managed backup and offline restore (#6359)

This commit is contained in:
InfinityPacer
2026-08-19 17:34:32 +08:00
committed by GitHub
parent f4a879b3de
commit f700db5ac8
27 changed files with 1576 additions and 80 deletions
+9 -5
View File
@@ -2,7 +2,7 @@ import tempfile
import unittest
from datetime import datetime, timedelta
from pathlib import Path
from unittest.mock import patch
from unittest.mock import MagicMock, patch
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
@@ -16,9 +16,9 @@ from app.runtime.config import settings
from app.scheduler import SchedulerChain
from app.application.maintenance import (
DataCleanupService,
configure_cleanup_service_factory,
read_cleanup_policy,
)
from app.application.database import DatabaseGovernance, configure_database_governance
from app.db.maintenance import DatabaseCleanupRepository
@@ -51,13 +51,17 @@ class DataCleanupChainTest(unittest.TestCase):
return patch.multiple(settings, **defaults)
def _configure_cleanup_service(self):
"""把当前测试数据库注入清理应用服务,替代旧的 SessionFactory 打桩"""
configure_cleanup_service_factory(
lambda: DataCleanupService(
"""把当前测试数据库注入统一数据库治理门面"""
configure_database_governance(
DatabaseGovernance(
health=MagicMock(),
backup=MagicMock(),
cleanup=DataCleanupService(
repository=DatabaseCleanupRepository(
session_factory=self.SessionFactory,
),
policy_reader=read_cleanup_policy,
),
)
)