UNPKG

quicklite

Version:

A lightweight ORM toolkit for SQLite in Node.js applications

99 lines (98 loc) 2.6 kB
import Database from 'better-sqlite3'; import { BaseService } from '../core/BaseService'; /** * 数据传输格式 */ export interface DataTransferFormat { /** * 表名 */ tableName: string; /** * 数据条目 */ records: Record<string, any>[]; /** * 元数据 */ metadata?: { /** * 导出时间 */ exportTime: number; /** * 导出版本 */ version?: string; /** * 表结构 */ schema?: any; /** * 其他自定义元数据 */ [key: string]: any; }; } /** * 数据传输工具 */ export declare class DataTransferUtil { /** * 导出表数据到JSON文件 * @param service 数据服务 * @param filePath 导出文件路径 * @param options 导出选项 * @returns 导出的数据条数 */ static exportToJson<T extends object>(service: BaseService<T>, filePath: string, options?: { where?: { [key: string]: any; }; orderBy?: string; metadata?: Record<string, any>; }): number; /** * 从JSON文件导入数据到表 * @param service 数据服务 * @param filePath 导入文件路径 * @param options 导入选项 * @returns 导入的数据条数 */ static importFromJson<T extends object>(service: BaseService<T>, filePath: string, options?: { /** * 导入前清空表 */ clearTable?: boolean; /** * 检查表名是否匹配 */ checkTableName?: boolean; /** * 数据转换函数 */ transform?: (record: Record<string, any>) => Partial<T>; }): number; /** * 导出查询结果到CSV文件 * @param db 数据库实例 * @param query SQL查询语句 * @param filePath 导出文件路径 * @param params 查询参数 * @returns 导出的数据条数 */ static exportQueryToCsv(db: Database.Database, query: string, filePath: string, params?: any[]): number; /** * 从一个数据库复制表数据到另一个数据库 * @param sourceDb 源数据库实例 * @param targetDb 目标数据库实例 * @param tableName 表名 * @param options 复制选项 * @returns 复制的数据条数 */ static copyTableData(sourceDb: Database.Database, targetDb: Database.Database, tableName: string, options?: { where?: string; params?: any[]; batchSize?: number; }): number; }