是否可以 "CREATE DATABASE ..." 使用 pg-promise 和 PostgreSQL (9.5)?
Is it possible to "CREATE DATABASE ..." with pg-promise and PostgreSQL (9.5)?
问题是:
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 登录名。
首先,您需要使用有权创建新数据库的管理员帐户连接到现有数据库。
然后您可以通过常规查询创建新数据库...
const pgp = require('pg-promise')(/* initialization options */);
const db = pgp({
database: 'any-existing-db',
port: 5432,
user: 'postgres', // any admin user
password: 'admin-password'
});
await db.none('CREATE DATABASE :name', ['my_database']);
我本地就是运行这样的代码,运行正常
问题是:
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 登录名。
首先,您需要使用有权创建新数据库的管理员帐户连接到现有数据库。
然后您可以通过常规查询创建新数据库...
const pgp = require('pg-promise')(/* initialization options */);
const db = pgp({
database: 'any-existing-db',
port: 5432,
user: 'postgres', // any admin user
password: 'admin-password'
});
await db.none('CREATE DATABASE :name', ['my_database']);
我本地就是运行这样的代码,运行正常