#!/usr/bin/env node const _ = require('lodash/fp') require('../lib/environment-helper') const db = require('../lib/db') const migrate = require('../lib/migrate') const createMigration = `CREATE TABLE IF NOT EXISTS migrations ( id serial PRIMARY KEY, data json NOT NULL )` // no need to log the migration process process.env.SKIP_SERVER_LOGS = true function checkPostgresVersion () { return db.one('SHOW server_version;') .then(result => { console.log(result) const versionString = result.server_version const match = versionString.match(/(\d+)\.(\d+)/i) if (!match) { throw new Error(`Could not parse PostgreSQL version: ${versionString}`) } return parseInt(match[1], 10) }) } checkPostgresVersion() .then(majorVersion => { if (majorVersion < 12) { console.error('PostgreSQL version must be 12 or higher. Current version:', majorVersion) process.exit(1) } return db.none(createMigration) .then(() => migrate.run()) .then(() => { console.log('DB Migration succeeded.') process.exit(0) }) }) .catch(err => { console.error('DB Migration failed: %s', err) process.exit(1) })