【发布时间】:2018-08-19 21:19:20
【问题描述】:
问题是:
1) Can pg-promise be used to create a new database (schemas, et. al.)?
使用节点包 'pg-promise' 我似乎无法确定是否可以创建一个新数据库。我可以连接到现有数据库并且那里没有问题。但是,当我在没有数据库名称的情况下运行时,会出现错误:
这就是我正在尝试的:
host = host || '127.0.0.1'
port = port || '5432'
const pgp = require('pg-promise')(pgpInitOptions)
// database connection details
const pgConnectionOptions = {
host: host,
port: port,
user: user,
password: pass
}
// database instance
const localDB = pgp(pgConnectionOptions)
let escapedDbName = dbName.replace(/\"/g, '""');
let sql = 'CREATE DATABASE "' + escapedDbName + '"';
localDB
.any(sql)
.then((results) => {
console.log('creation of database successful', results)
})
.catch((error) => {
console.error('creation of database failed', error)
})
然后,我收到此错误:
creation of database failed
Error: database "jeff" does not exist
“jeff”是我的 ubuntu 登录名。
【问题讨论】:
-
您提供的凭据有问题。您必须使用有效的数据库帐户,即安装 PostgreSQL 服务器时使用的管理用户 + 密码,该帐户将具有创建新数据库的访问权限。那么它应该就可以工作了。
-
对不起,我应该提到它们是作为变量传入的。
标签: node.js postgresql pg-promise