mirror of
https://github.com/knex/knex.git
synced 2025-06-26 22:00:25 +00:00
34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
const { getTableName } = require('./table-resolver');
|
|
const { ensureTable } = require('./table-creator');
|
|
|
|
// 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.
|
|
async function listCompleted(tableName, schemaName, trxOrKnex) {
|
|
await ensureTable(tableName, schemaName, trxOrKnex);
|
|
|
|
return await trxOrKnex
|
|
.from(getTableName(tableName, schemaName))
|
|
.orderBy('id')
|
|
.select('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),
|
|
]);
|
|
}
|
|
|
|
module.exports = {
|
|
listAll,
|
|
listAllAndCompleted,
|
|
listCompleted,
|
|
};
|