@heroku-cli/plugin-pg-v5
Version:
Heroku CLI plugin to manage Postgres.
42 lines (34 loc) • 1.28 kB
JavaScript
const co = require('co')
const cli = require('heroku-cli-util')
function * run (context, heroku) {
const fetcher = require('../lib/fetcher')(heroku)
const psql = require('../lib/psql')
const { app, args, flags } = context
let namespace = flags.credential ? `credential:${flags.credential}` : null
let db = yield fetcher.database(app, args.database, namespace)
cli.console.error(`--> Connecting to ${cli.color.addon(db.attachment.addon.name)}`)
if (flags.command) {
process.stdout.write(yield psql.exec(db, flags.command))
} else if (flags.file) {
process.stdout.write(yield psql.execFile(db, flags.file))
} else {
yield psql.interactive(db)
}
}
let cmd = {
description: 'open a psql shell to the database',
needsApp: true,
needsAuth: true,
flags: [
{ name: 'command', char: 'c', description: 'SQL command to run', hasValue: true },
{ name: 'file', char: 'f', description: 'SQL file to run', hasValue: true },
{ name: 'credential', description: 'credential to use', hasValue: true }
],
args: [{ name: 'database', optional: true }],
run: cli.command({ preauth: true }, co.wrap(run))
}
module.exports = [
Object.assign({ topic: 'pg', command: 'psql' }, cmd),
Object.assign({ topic: 'psql' }, cmd)
]