@360-l/mongo-bulk-data-migration
Version:
MongoDB bulk data migration for node scripts
36 lines (35 loc) • 1.35 kB
TypeScript
import type { BulkOperationResult } from './lib/AbstractBulkOperationResults';
import type { DataMigrationConfig, LoggerInterface, MigrationInfos, RollbackableUpdate } from './types';
import type { Collection, Document } from 'mongodb';
export declare const DELETE_COLLECTION: unique symbol;
export default class MongoBulkDataMigration<TSchema extends Document> implements RollbackableUpdate {
private readonly options;
private readonly collectionName;
private readonly id;
private readonly migrationInfos;
private logger;
constructor(config: DataMigrationConfig<TSchema>);
setLogger(logger: LoggerInterface): void;
getInfos(): {
id: string;
migrationInfos: MigrationInfos<TSchema>;
collection: Collection<TSchema>;
collectionName: string;
};
private getRollbackCollection;
private getRollbackCollectionName;
private getCollection;
update(): Promise<BulkOperationResult>;
private getCursorAndCount;
private buildBulkUpdater;
private buildBackupDocument;
private throttle;
rollback(): Promise<BulkOperationResult>;
private getRollbackUpdateQuery;
private lowerValidationLevel;
private restoreValidationLevel;
private canUpdateValidation;
private setValidationLevel;
private renameCollection;
clean(): Promise<void>;
}