使用PostgreSQL创建表

时间:2018-10-04 15:32:28

标签: javascript node.js postgresql

我正在尝试使用PostgreSQL创建一个表。上面的代码正确进行身份验证。我现在面临的问题是如何正确创建表“设备”并向其中写入数据。

const Sequelize =  require('sequelize');
const env = require('./config');

sequelize =  new Sequelize({
    database: '******',
    dialect: 'postgres',
    username: '********',
    password: '******',
    host: '********',
    port: 3211
});

sequelize.authenticate().then(() => {
console.log("Connected to DB");
})
.catch((err) => {
console.log(err);
})

function insertIntoPostgres(filename, data) {

var fileToCreate = 
`/${env.azurePG.data_store_pg.folder}/${filename}.json`;
var options = {
    streamContents: new Buffer(JSON.stringify(data))

}

filesystemClient.fileSystem.create(env.azurePG.data_store_pg.account_name_pg, fileToCreate, options)
    .then(res => {})
    .catch(err => {
        console.log("error inserting into postgres: ", err);
    });
};
// Export the above methods
module.exports = {
insertIntoPostgres
}

这是我的代码部分,我认为上述代码有误:

filesystemClient.fileSystem.create(env.azurePG.data_store_pg.account_name_pg, fileToCreate, options)
.then(res => {})
.catch(err => {
    console.log("error inserting into postgres: ", err);
});
};

我的config.js

module.exports = {
PGDATABASE : "******",
PGPORT : 3211,
azurePG : {
  PGUSER : "*******",
  PGHOST : "********",
  PGPASSWORD : "*******",
  data_store_pg : {
    account_name_pg : "********",
    folder : "devices"
  }
}
};

关于问题出在哪里的任何想法?

1 个答案:

答案 0 :(得分:0)

您需要首先实际创建表,然后运行代码以填充表。我将看一下您正在使用的数据集,以了解字段名称和数据类型,然后运行以下命令:

@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
protected void onCreate()

我不确定您是否要尝试建立一个完整的自动创建表并填充表的周期,但是您可以跳到postgres并在终端或任何数据库管理工具中运行创建表代码您正在使用。创建表之后,您应该是表,可以运行以下代码来验证其是否正确创建:

CREATE TABLE devices(
    id serial PRIMARY KEY,
    name TEXT NOT NULL,
    otherfield TEXT NOT NULL
);

它应该返回一个空表,其中包含您指定的所有列。如果一切顺利,请运行填充表的代码。应该工作正常。