簡體   English   中英

將 Postgres Heroku 與 Knex 連接不起作用

[英]Connecting Postgres Heroku with Knex not working

我們在使用 Knex 運行查詢的情況下設置 Heroku/Postgres 數據庫時遇到了困難。 我們已經設置了我們的 heroku/postgres 數據庫並創建了我們的表,但是我們在使用 Knex 連接到它時遇到了困難。 更糟糕的是,幾乎沒有關於將 Heroku/Postgres 與 Knex 或任何 ORM 連接的文檔,因此試圖弄清楚這些東西真的很痛苦。

這些是我嘗試過的連接模式。

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

並且...請注意 ssl true 被切換並一起刪除無濟於事。

  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 請求上測試插入查詢。 因此,在對主頁的任何 get 請求中,它都應該在我們的 waterrates 表中插入一些內容。 如果我將它從插入切換到選擇,它會返回一個對象,但實際上您看不到該對象中的任何數據。

我們嘗試使用的插入是:

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().

我們實際上不確定錯誤可能在哪里,因為嘗試連接不會產生任何錯誤。 這可能很愚蠢,但我們不知道在哪里/如何解決這個問題。 任何幫助將不勝感激!

謝謝,乙

我安裝了一個舊版本的 PG,這導致了這個問題。 我們更改了 package.json 文件以使用最新的 PG。 Heroku 更新了它並且它起作用了!

附帶說明一下,如果將來有人看這個,heroku 需要 SSL 連接。 工作時請記住這一點。 我上面提供的連接字符串應該適合你們所有人。

對於任何正在處理這個問題的人。

如果您不使用付費測功機,請將“SSL”設置為 false。

Heroku 只為使用付費 dynos 的用戶分配“SSL”。

const db = knex({
  client: 'pg',
  connection: {
    connectionString : process.env.DATABASE_URL,
    ssl: false
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM