我正在尝试使用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"
}
}
};
关于问题出在哪里的任何想法?
答案 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
);
它应该返回一个空表,其中包含您指定的所有列。如果一切顺利,请运行填充表的代码。应该工作正常。