我正在尝试创建一个节点应用程序,它可以在数据库端设置自己,创建一个数据库,然后创建表和字段。下面是我用来独立完成每个任务的两个函数。我能得到一些关于如何将它们组合在一起的帮助吗?我应该使用pg-promise而不是pg吗?
function createDatabase(){
const pool = new pg.Pool({
user: 'postgres',
host: '127.0.0.1',
database: 'postgres',
password: 'postgres',
port: '5432'}
);
pool.query("CREATE DATABASE myApp;",
(err, res) => {
console.log(err, res);
pool.end();
});
}
function createTable(){
const pool = new pg.Pool({
user: 'postgres',
host: '127.0.0.1',
database: 'myApp',
password: 'postgres',
port: '5432'}
);
pool.query("CREATE TABLE session(sessionguid UUID NOT NULL, created
text NOT NULL, sessionlife integer NOT NULL)",
(err, res) => {
console.log(err, res);
pool.end();
});
}
发布于 2018-08-31 05:40:59
也许下面的代码会对你有所帮助。现在,在CREATE DATABASE查询完成后,将立即在回调中创建表。
function createDatabase(){
const pool = new pg.Pool({
user: 'postgres',
host: '127.0.0.1',
database: 'postgres',
password: 'postgres',
port: '5432'}
);
pool.query("CREATE DATABASE myApp;", (err, res) => {
console.log(err, res);
pool.query("CREATE TABLE session(sessionguid UUID NOT NULL, created text NOT NULL, sessionlife integer NOT NULL)", (err, res) => {
console.log(err, res);
pool.end();
});
});
}
发布于 2021-05-19 09:47:00
为了从代码创建数据库,我使用客户端而不是池。示例如下:
const { Pool, Client } = require('pg')
const client = new Client({
user: 'postgres',
host: 'localhost',
password: 'postgres',
port: 5432
})
await client.connect()
await client.query(`DROP DATABASE IF EXISTS ${dbname};`)
await client.query(`CREATE DATABASE ${dbname};`)
await client.end()
//call the pool you just created after the database has been created.
https://stackoverflow.com/questions/52104833
复制相似问题