46 lines
1.2 KiB
JavaScript
Executable file
46 lines
1.2 KiB
JavaScript
Executable file
#!/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)
|
|
})
|