首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在首次使用Node和pg创建数据库后创建表

如何在首次使用Node和pg创建数据库后创建表
EN

Stack Overflow用户
提问于 2018-08-31 04:22:18
回答 2查看 5K关注 0票数 4

我正在尝试创建一个节点应用程序,它可以在数据库端设置自己,创建一个数据库,然后创建表和字段。下面是我用来独立完成每个任务的两个函数。我能得到一些关于如何将它们组合在一起的帮助吗?我应该使用pg-promise而不是pg吗?

代码语言:javascript
复制
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();
});

}
EN

回答 2

Stack Overflow用户

发布于 2018-08-31 05:40:59

也许下面的代码会对你有所帮助。现在,在CREATE DATABASE查询完成后,将立即在回调中创建表。

代码语言:javascript
复制
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();
    });
});
}
票数 1
EN

Stack Overflow用户

发布于 2021-05-19 09:47:00

为了从代码创建数据库,我使用客户端而不是池。示例如下:

代码语言:javascript
复制
        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.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52104833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档