2015-08-16 39 views

回答

0

Redshift基於postgres 8.0.2(http://docs.aws.amazon.com/redshift/latest/dg/c_redshift-and-postgres-sql.html)的頂部,所以postgres和sequelize都應該能夠連接到它。

我沒有任何與它的個人經驗,但紅移文檔建議您可以使用常規的JDBC/ODBC驅動程序連接到它,所以我會感到驚訝,如果節點驅動程序不工作

+1

似乎節點-PG(其被兩個sequelize和書架)連接到重dshift就好了https://github.com/brianc/node-postgres/issues/686 –

+0

這個較早的[問題](http://stackoverflow.com/questions/28178923/using-node-pg-library-to-connect到亞馬遜紅移)表明過去時區有一些問題,但現在可能已經修復了。 –

+1

關於時區的問題已經確定是的。我不知道任何問題,在官方的錯誤跟蹤系統中沒有任何報告(完全披露,我是一個續集開發者) –

2

Sequelize與Redshift不兼容。儘管Redshift是在Postgres之上編寫的,但它是一個列式DB,主要的核心功能被重寫。

嘗試連接到它提供了一個錯誤「設置時區,不支持」

以下線程顯示了一些人覆蓋的時間段錯誤,但隨後面臨的其他問題。 「Using Node 'pg' library to connect to Amazon Redshift

如果紅移是強制性的,你可以使用節點JDBC包與紅移 https://github.com/CraZySacX/node-jdbc

連接,如果ORM是強制性的,你應該可以試試您的數據存儲移動到純的Postgres

6

我已經能夠得到Sequelize至少連接到紅移(和做一個簡單的SELECT查詢)使用這些選項:

var Sequelize = require('sequelize'); 
Sequelize.HSTORE.types.postgres.oids.push('dummy'); // avoid auto-detection and typarray/pg_type error 
module.exports = new Sequelize(process.env.REDSHIFT_DATABASE, process.env.REDSHIFT_USER, process.env.REDSHIFT_PASSWORD, { 
    host: process.env.REDSHIFT_HOST, 
    port: process.env.REDSHIFT_PORT, 
    dialect: 'postgres', 
    pool: false, 
    keepDefaultTimezone: true, // avoid SET TIMEZONE 
    databaseVersion: '8.0.2' // avoid SHOW SERVER_VERSION 
});