quicklite
Version:
A lightweight ORM toolkit for SQLite in Node.js applications
99 lines (98 loc) • 2.6 kB
TypeScript
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;
}