[英]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.