lamassu-server/packages/server/bin/lamassu-migrate
2025-05-20 12:09:56 +01:00

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)
})