import { type Knex } from "knex"; import { type SonamuDBConfig } from "../database/db"; import { type GenMigrationCode } from "../types/types"; import { type MigrationStatus } from "./types"; export type MigrationResult = { connKey: string; batchNo: number; applied: string[]; }[]; export declare class Migrator { private runMigrationsSequentially; private getMigrationCodes; /** * 타겟별 마이그레이션 상태와 코드 생성/준비 상태를 구해옵니다. * 실제로 DB에 접근도 하고 마이그레이션 코드 파일도 확인하고, * 필요하다면 적용할 수 있는 코드를 생성까지 해옵니다. * * CLI와 Sonamu UI에서 사용됩니다. * * @returns */ getStatus(): Promise; /** * 마이그레이션을 적용하거나 롤백합니다. * Sonamu UI에서 마이그레이션 작업을 수행할 때 사용됩니다. * * CLI와 Sonamu UI에서 사용됩니다. * * @param action 작업 유형 (apply/rollback) * @param targets 작업 대상 DB 설정 키 (keyof SonamuDBConfig) * @returns 작업 결과 */ runAction(action: "apply" | "rollback", targets: (keyof SonamuDBConfig)[]): Promise; /** * 삭제 가능한 마이그레이션 코드 파일을 검증합니다. * * @param conns 마이그레이션 상태 배열 * @param codeNames 삭제할 마이그레이션 코드 파일 이름 배열 * @returns 삭제 가능 여부 및 적용된 마이그레이션 코드 파일 이름 */ validateDeletable(conns: MigrationStatus["conns"], codeNames: string[]): { canDelete: boolean; appliedCodes: string[]; }; /** * 마이그레이션 코드 파일을 삭제합니다. * * Sonamu UI에서 사용됩니다. * * @param codeNames 삭제할 마이그레이션 코드 파일 이름 배열 * @returns 삭제된 마이그레이션 코드 파일 개수 */ delCodes(codeNames: string[]): Promise; private genDateTag; /** * 마이그레이션 코드 파일을 생성합니다. * * Sonamu UI에서 사용됩니다. * * @returns 생성된 마이그레이션 코드 파일 개수 */ generatePreparedCodes(): Promise; compareMigrations(compareDB: Knex): Promise; /** * Shadow DB 테스트를 진행합니다. * * Sonamu UI에서 사용됩니다. * * @returns Shadow DB 테스트 결과 */ runShadowTest(): Promise; } //# sourceMappingURL=migrator.d.ts.map