Add database install / migrate commands

This commit is contained in:
rijkvanzanten
2020-09-17 17:25:56 -04:00
parent 9ffc056bd3
commit a409b9cb9a
8 changed files with 137 additions and 8 deletions

View File

@@ -3,6 +3,12 @@ import run from '../../../database/seeds/run';
export default async function start() {
const database = require('../../../database/index').default as Knex;
await run(database);
database.destroy();
try {
await run(database);
} catch (err) {
console.log(err);
process.exit(1);
} finally {
database.destroy();
}
}

View File

@@ -0,0 +1,14 @@
import run from '../../../database/migrations/run';
export default async function migrate(direction: 'latest' | 'up' | 'down') {
const database = require('../../../database').default;
try {
await run(database, direction);
} catch(err) {
console.log(err);
process.exit(1);
} finally {
database.destroy();
}
}

View File

@@ -1,10 +1,9 @@
import logger from '../../logger';
export default async function start() {
const { default: env, validateEnv } = require('../../env');
const { default: env } = require('../../env');
const { validateDBConnection } = require('../../database');
validateEnv();
await validateDBConnection();
const app = require('../../app').default;

View File

@@ -7,13 +7,19 @@ const pkg = require('../../package.json');
import start from './commands/start';
import init from './commands/init';
import dbInstall from './commands/database/install';
program.version(pkg.version, '-v, --version');
import dbMigrate from './commands/database/migrate';
program.name('directus').usage('[command] [options]');
program.version(pkg.version, '-v, --version');
program.command('start').description('Start the Directus API').action(start);
program.command('init').description('Create a new Directus Project').action(init);
program.command('database install').description('Install the database').action(dbInstall);
program.parseAsync(process.argv);
const dbCommand = program.command('database');
dbCommand.command('install').description('Install the database').action(dbInstall);
dbCommand.command('migrate:latest').description('Upgrade the database').action(() => dbMigrate('latest'));
dbCommand.command('migrate:up').description('Upgrade the database').action(() => dbMigrate('up'));
dbCommand.command('migrate:down').description('Downgrade the database').action(() => dbMigrate('down'));
program.parse(process.argv);