/** * MigrationRunner — 升级与数据迁移执行器 * * FR-Z10: * - AC1: 每次 schema 变更附带迁移脚本,支持自动迁移 * - AC2: 升级前自动执行数据完整性校验 * - AC3: 升级失败支持回滚到升级前状态 * - AC4: 升级说明文档 */ import type { MigrationScript, IntegrityCheckResult, MigrationResult, UpgradeNotes, BackupResult } from './migration-types.js'; export interface MigrationDatabase { exec(sql: string): void; prepare(sql: string): { run(...args: unknown[]): void; get(...args: unknown[]): unknown; all(...args: unknown[]): unknown[]; }; transaction(fn: () => T): () => T; } export declare class MigrationRunner { private readonly db; constructor(db: MigrationDatabase); /** * AC2: 升级前数据完整性校验 */ checkIntegrity(): IntegrityCheckResult; /** * 获取当前数据库版本 */ getCurrentVersion(): string; /** * 获取待执行的迁移脚本 */ getPendingMigrations(): MigrationScript[]; /** * AC1: 执行迁移 * AC3: 失败时回滚 */ migrate(targetVersion?: string): MigrationResult; /** * AC3: 回滚迁移 */ rollback(versions: string[]): void; /** * AC4: 获取升级说明 */ getUpgradeNotes(): UpgradeNotes[]; /** 获取所有已注册的迁移脚本 */ getRegisteredMigrations(): MigrationScript[]; /** * 迁移前自动备份数据库 * 将当前数据库文件复制到 backupDir,文件名含版本号和时间戳 */ backup(dbPath: string, backupDir: string): BackupResult; /** * 带备份的迁移(组合 backup + migrate) */ migrateWithBackup(dbPath: string, backupDir: string, targetVersion?: string): MigrationResult & { backupPath?: string; }; } //# sourceMappingURL=migration-runner.d.ts.map