diff --git a/bin/lamassu-migrate b/bin/lamassu-migrate index 878e5395..3b71f0e4 100755 --- a/bin/lamassu-migrate +++ b/bin/lamassu-migrate @@ -4,7 +4,7 @@ const FileStore = require('migrate/lib/file-store') const db = require('../lib/db') const migrate = require('../lib/migrate') const options = require('../lib/options') - +const { asyncLocalStorage, defaultStore } = require('../lib/async-storage') const createMigration = `CREATE TABLE IF NOT EXISTS migrations ( id serial PRIMARY KEY, data json NOT NULL @@ -21,20 +21,23 @@ const getMigrateFile = () => { }) } -db.$none(createMigration) - .then(() => Promise.all([db.$oneOrNone(select), getMigrateFile()])) - .then(([qResult, migrateFile]) => { - process.env.SKIP_SERVER_LOGS = !(qResult && qResult.data.migrations.find(({ title }) => title === '1572524820075-server-support-logs.js')) - if (!qResult && migrateFile) { - return db.$none('insert into migrations (id, data) values (1, $1)', [migrateFile]) - } - }) - .then(() => migrate.run()) - .then(() => { - console.log('DB Migration succeeded.') - process.exit(0) - }) - .catch(err => { - console.error('DB Migration failed: %s', err) - process.exit(1) - }) +const store = defaultStore() +asyncLocalStorage.run(store, () => { + db.$none(createMigration) + .then(() => Promise.all([db.$oneOrNone(select), getMigrateFile()])) + .then(([qResult, migrateFile]) => { + process.env.SKIP_SERVER_LOGS = !(qResult && qResult.data.migrations.find(({ title }) => title === '1572524820075-server-support-logs.js')) + if (!qResult && migrateFile) { + return db.$none('insert into migrations (id, data) values (1, $1)', [migrateFile]) + } + }) + .then(() => migrate.run()) + .then(() => { + console.log('DB Migration succeeded.') + process.exit(0) + }) + .catch(err => { + console.error('DB Migration failed: %s', err) + process.exit(1) + }) +}) diff --git a/lib/async-storage.js b/lib/async-storage.js index e316604b..2d42995f 100644 --- a/lib/async-storage.js +++ b/lib/async-storage.js @@ -1,11 +1,10 @@ const { AsyncLocalStorage } = require('async_hooks') const asyncLocalStorage = new AsyncLocalStorage() -const defaultStore = (a = null) => { +const defaultStore = () => { const store = new Map() store.set('schema', 'public') store.set('defaultSchema', 'ERROR_SCHEMA') - if (a) store.set('a', 'a') return store } diff --git a/lib/db.js b/lib/db.js index d76ff5b9..fbcf3387 100644 --- a/lib/db.js +++ b/lib/db.js @@ -91,7 +91,7 @@ eventBus.subscribe('log', args => { (id, device_id, message, log_level, meta) values ($1, $2, $3, $4, $5) returning *` // need to set AsyncLocalStorage (ALS) for this function as well // because this module is imported before ALS is set up on app.js - const store = defaultStore(true) + const store = defaultStore() asyncLocalStorage.run(store, () => { db.$one(sql, [uuid.v4(), '', msgToSave, level, meta]) .then(_.mapKeys(_.camelCase)) diff --git a/lib/new-admin/admin-server.js b/lib/new-admin/admin-server.js index 69c75b28..c2538924 100644 --- a/lib/new-admin/admin-server.js +++ b/lib/new-admin/admin-server.js @@ -11,7 +11,7 @@ const cookieParser = require('cookie-parser') const { ApolloServer, AuthenticationError } = require('apollo-server-express') const _ = require('lodash/fp') -const asyncLocalStorage = require('../async-storage') +const { asyncLocalStorage, defaultStore } = require('../async-storage') const options = require('../options') const users = require('../users') @@ -97,10 +97,8 @@ const certOptions = { } function run () { - const store = new Map() + const store = defaultStore() asyncLocalStorage.run(store, () => { - store.set('schema', 'public') - store.set('defaultSchema', 'ERROR_SCHEMA') const serverPort = devMode ? 8070 : 443 const serverLog = `lamassu-admin-server listening on port ${serverPort}` diff --git a/migrations/db.js b/migrations/db.js index 5ff11833..ec2e2ba3 100644 --- a/migrations/db.js +++ b/migrations/db.js @@ -1,7 +1,7 @@ const db = require('../lib/db') const sequential = require('promise-sequential') -module.exports = {multi} +module.exports = { multi } function multi (sqls, cb) { const doQuery = s => {