fewer
Version:
A minimal ORM for Node.js.
40 lines (39 loc) • 1.99 kB
TypeScript
import { Database } from '../Database';
import { Adapter } from '../Adapter';
import ColumnType from '../ColumnType';
import { MigrationDefinition, ChangeMigrationShorthand, TaggedMigrationDefinition } from './Definition';
import { Operation } from './Operations';
interface ColumnTypes {
[columnName: string]: ColumnType;
}
declare const CONTAINS_IRREVERSIBLE: unique symbol;
export declare class MigrationBuilder<DBAdapter extends Adapter = any, ContainsIrreversibleOperation extends boolean = false> {
[CONTAINS_IRREVERSIBLE]: ContainsIrreversibleOperation;
operations: Operation[];
direction: 'up' | 'down';
isChangeMigration: boolean;
constructor(direction: 'up' | 'down', isChangeMigration: boolean);
private readonly flipped;
private addOperation;
createTable(name: string, options: DBAdapter['TableTypes'], columns: ColumnTypes): MigrationBuilder<DBAdapter, ContainsIrreversibleOperation>;
dropTable(name: string): MigrationBuilder<DBAdapter, true>;
dropTable(name: string, options?: DBAdapter['TableTypes'], columns?: ColumnTypes): MigrationBuilder<DBAdapter, ContainsIrreversibleOperation>;
}
export declare class Migration<DBAdapter extends Adapter = any> {
private definition;
readonly version: number;
readonly type: 'change' | 'updown' | 'irreversible';
readonly database: Database;
operations: Operation[];
constructor(version: number, database: Database, definition: TaggedMigrationDefinition<DBAdapter>);
/**
* Prepares the migration to be run. Populates the operations.
*/
prepare(direction: 'up' | 'down'): void;
/**
* Runs the migration against the underlying adapter.
*/
run(direction: 'up' | 'down'): Promise<void>;
}
export { MigrationDefinition };
export declare function createMigration<DBAdapter extends Adapter>(version: number, db: Database<DBAdapter>, definition: MigrationDefinition<DBAdapter> | ChangeMigrationShorthand<DBAdapter>): Migration<DBAdapter>;