mirror of
https://github.com/swc-project/swc.git
synced 2024-12-30 09:03:37 +03:00
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
|
// Loaded from https://raw.githubusercontent.com/denjucks/dex/master/lib/migrate/migration-list-resolver.js
|
||
|
|
||
|
|
||
|
import { getTableName } from './table-resolver.js';
|
||
|
import { ensureTable } from './table-creator.js';
|
||
|
|
||
|
// Lists all available migration versions, as a sorted array.
|
||
|
function listAll(migrationSource, loadExtensions) {
|
||
|
return migrationSource.getMigrations(loadExtensions);
|
||
|
}
|
||
|
|
||
|
// Lists all migrations that have been completed for the current db, as an
|
||
|
// array.
|
||
|
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.
|
||
|
function listAllAndCompleted(config, trxOrKnex) {
|
||
|
return Promise.all([
|
||
|
listAll(config.migrationSource, config.loadExtensions),
|
||
|
listCompleted(config.tableName, config.schemaName, trxOrKnex),
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
export default {
|
||
|
listAll,
|
||
|
listAllAndCompleted,
|
||
|
listCompleted,
|
||
|
};
|