UNPKG

knex

Version:

A batteries-included SQL query & schema builder for Postgres, MySQL and SQLite3 and the Browser

35 lines (31 loc) 1.13 kB
import Promise from 'bluebird'; import { getTableName } from './table-resolver'; import { ensureTable } from './table-creator'; // Lists all available migration versions, as a sorted array. export function listAll(migrationSource, loadExtensions) { return migrationSource.getMigrations(loadExtensions); } // Lists all migrations that have been completed for the current db, as an // array. export function listCompleted(tableName, schemaName, trxOrKnex) { return ensureTable(tableName, schemaName, trxOrKnex) .then(() => trxOrKnex .from(getTableName(tableName, schemaName)) .orderBy('id') .select('name') ) .then((migrations) => migrations.map((migration) => { return migration.name; }) ); } // Gets the migration list from the migration directory specified in config, as well as // the list of completed migrations to check what should be run. export function listAllAndCompleted(config, trxOrKnex) { return Promise.all([ listAll(config.migrationSource, config.loadExtensions), listCompleted(config.tableName, config.schemaName, trxOrKnex), ]); }