anydb-sql-migrations
Version:
Database migrations for anydb-sql
33 lines (32 loc) • 1.03 kB
TypeScript
declare module "anydb-sql-migrations" {
import Promise = require('bluebird');
import { Column, Table, Transaction, AnydbSql } from 'anydb-sql';
export interface Migration {
version: string;
}
export interface MigrationsTable extends Table<Migration> {
version: Column<string>;
}
export interface MigFn {
(tx: Transaction): Promise<any>;
}
export interface MigrationTask {
up: MigFn;
down: MigFn;
name: string;
}
export interface MigrationOptions {
check?: boolean;
execute?: boolean;
rollback?: boolean;
drop?: boolean;
}
export function create(db: AnydbSql, tasks: string | MigrationTask[]): {
run: () => Promise<any>;
execMigrations: (migrationOptions: MigrationOptions) => Promise<void>;
check: (f: (items: MigrationTask[]) => any) => Promise<any>;
migrate: () => Promise<any>;
undoLast: () => Promise<any>;
drop: () => Promise<any>;
};
}