2014-09-29 61 views
6

我们在运行我们的查询时使用Knex设置Heroku/Postgres数据库时遇到困难。我们已经建立了我们的heroku/postgres数据库并创建了我们的表格,但是我们很难与Knex连接。更糟糕的是,几乎没有关于将Heroku/Postgres与Knex或任何ORM连接的文档,所以试图找出这些东西是一件非常痛苦的事情。将Postgres Heroku连接到Knex不起作用

这些是我试过的连接模式。

var knex = require('knex')({ 
    client: 'pg', 
    connection: { 
    user: username, 
    password: password, 
    host: host, 
    port: port, 
    database: database, 
    ssl: true 
    } 
    } 
}); 

而且......注意SSL真正是切换和所有一起除去无济于事。

var knex = require('knex')({ 
    client: 'pg', 
    connection: HEROKU_POSTGRESQL_COLOR_URL, 
    ssl: true 
    } 
    }); 

我们也尝试过这种模式还有:

var pg = require('knex')({ 
    client: 'pg', 
    connection: HEROKU_POSTGRESQL_COLOR_URL 
}); 

我们还没有拉低我们的LocalDB的副本,所以我们每次运行测试基本上是一个git的承诺。我们基本上是在对根(index.html)页面的GET请求上测试插入查询。所以在任何对主页的请求中,都应该在我们的waterrates表中插入一些东西。如果将它从insert切换到select,它将返回一个对象,但实际上看不到对象中的任何数据。

我们正在尝试使用的刀片是:

knex.select('*').from('waterrates').then(function(rows){ 
    return rows; 
}); 

knex('waterrates').insert({name: 'pleeeaseee work'}, {rate: 100}).then(function(rows){ 
    console.log(rows); 
}) 

knex.select(). 

我们实际上是不确定的,其中的错误可能是因为试图连接不产生任何错误。这可能是愚蠢的,但我们不知道在哪里/如何解决这个问题。任何帮助将不胜感激!

感谢, 乙

回答

5

我有一个老版本的PG的安装这是导致该问题。我们改变了我们的package.json文件以使用最新的PG。 Heroku更新了它,它工作!

作为一个侧面说明,如果有人在将来看这个,heroku需要SSL连接。请记住,当你在工作。上面提供的连接字符串应该适用于所有人。

B