UNPKG

quicklite

Version:

A lightweight ORM toolkit for SQLite in Node.js applications

66 lines (65 loc) 1.63 kB
import Database from 'better-sqlite3'; import { BaseEntity } from '../core/BaseEntity'; /** * 表结构差异 */ export interface TableDiff { /** * 需要添加的列 */ addedColumns: string[]; /** * 需要修改的列 */ alteredColumns: string[]; /** * 需要删除的列 */ removedColumns: string[]; /** * 是否需要重建表 */ needsRebuild: boolean; } /** * 迁移操作接口 */ export interface MigrationOperation { /** * 执行迁移操作 * @param db 数据库实例 */ up(db: Database.Database): void; /** * 回滚迁移操作 * @param db 数据库实例 */ down(db: Database.Database): void; } /** * 数据库迁移工具 */ export declare class MigrationUtil { /** * 检查模型与数据库表的差异 * @param db 数据库实例 * @param entityClass 实体类 * @returns 表结构差异信息 */ static checkTableDiff(db: Database.Database, entityClass: typeof BaseEntity): Promise<TableDiff>; /** * 执行表迁移 * @param db 数据库实例 * @param entityClass 实体类 * @param preserveData 是否保留数据 * @returns 是否成功迁移 */ static migrateTable(db: Database.Database, entityClass: typeof BaseEntity, preserveData?: boolean): boolean; /** * 重建表(用于结构变更较大时) * @param db 数据库实例 * @param entityClass 实体类 * @returns 是否重建成功 */ static rebuildTable(db: Database.Database, entityClass: typeof BaseEntity): boolean; }