mgdb-migrator
Version:
Mongodb schema and data migration lib
42 lines (41 loc) • 1.26 kB
TypeScript
import { Db, MongoClientOptions } from 'mongodb';
export type SyslogLevels = 'debug' | 'info' | 'notice' | 'warning' | 'error' | 'crit' | 'alert';
export type Logger = (level: SyslogLevels, ...args: unknown[]) => void;
export interface DbProperties {
connectionUrl: string;
name?: string;
options?: MongoClientOptions;
}
export interface MigratorOptions {
log?: boolean;
logger?: Logger;
logIfLatest?: boolean;
collectionName?: string;
db: DbProperties | Db;
}
export interface Migration {
version: number;
name: string;
up: (db: Db, logger?: Logger) => Promise<void> | void;
down: (db: Db, logger?: Logger) => Promise<void> | void;
}
export declare class Migrator {
private migratorKey;
private defaultMigration;
private list;
private collection;
private db;
private options;
constructor(opts?: MigratorOptions);
config(opts?: MigratorOptions): Promise<void>;
add(migration: Migration): void;
migrateTo(command: string | number): Promise<void>;
getNumberOfMigrations(): number;
getVersion(): Promise<number>;
unlock(): void;
reset(): Promise<void>;
private execute;
private getControl;
private setControl;
private findIndexByVersion;
}