【发布时间】:2021-08-19 21:02:01
【问题描述】:
我需要从我们在 Amazon Redshift 上的 dw 中的表中进行查询。我一直在阅读,但找不到从那里的表中查询的方法,我通常这样做是为了使用 sequelize 进行连接。
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const db = {};
const sequelize = new Sequelize(
process.env.DB_REDSHIFT,
process.env.DB_USER,
process.env.DB_PASS,
{
host: process.env.DB_HOST,
dialect: 'postgres',
...process.env.NODE_ENV !== 'dev' && {
logging: false,
},
define: {
underscored: true,
},
dialectOptions: {
multipleStatements: true,
dateStrings: true,
typeCast: (field, next) => {
if (field.type === 'DATETIME' || field.type === 'TIMESTAMP') {
return field.string();
}
return next();
},
},
pool: {
max: 1,
min: 0,
idle: 10000,
},
},
);
fs.readdirSync(__dirname).filter((file) => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
}).forEach((file) => {
const model = sequelize.import(path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
但我得到了SequelizeHostNotFoundError: getaddrinfo ENOTFOUND,我尝试过使用端点、jdbc 和 odbc,我对此真的很陌生,所以任何事情都会有所帮助。
【问题讨论】:
标签: node.js amazon-web-services sequelize.js amazon-redshift