2016-07-25 31 views
2

當我嘗試運行knex seed:run針對我的遠程postgres數據庫(非本地主機)時出現以下錯誤:Knex:Error Pool2 - Error: connect ECONNREFUSED 127.0.0.1:5432嘗試knex種子時出錯:成功knex遷移後運行:最新用於遠程數據庫

我能夠成功運行knex migrate:latest,並且可以看到這些表是在我的postgres服務器上創建的,但是當我嘗試播種時,出現該錯誤。我已經對我的本地配置運行了相同的遷移/種子文件,並且它沒有問題,但是當我試圖種下我的heroku postgres實例時,它會拋出這個錯誤(我沒有運行本地pg服務,播種新的數據庫,這可能是爲什麼它拋出一個錯誤)。

任何想法爲什麼它試圖連接到本地主機,而不是指定的數據庫?我提供的文件示例如下:

var User = require("./models/User"); 
var Project = require("./models/Project"); 

exports.seed = function(knex, Promise) { 
    console.log(knex.client.config.connection); //This returns the correct db info. 
    return knex('user').del() 
    .then(function() { 
     return knex('project').del() 
    }).then(function() { 
     return new User({id: 1, firstName: "James", lastName: "Lee", phone: "123-456-2000", email: "[email protected]"}).save(null, {method: "insert"}); 
    }).then(function() { 
     return new Project({id: 1, name: "Test"}).save(null, {method: "insert"}); 
    }) 
}; 
+0

嗨,你可以抽樣你的kexfile.js,一個或兩個遷移和一些種子?我只是猜測,但也許種子可能不會返回一個承諾或建設者,也許它由於錯誤得到錯誤的配置文件...如果可能提供更多的信息。 – Sombriks

+0

感謝您的回覆,我在主帖中添加了一些代碼。 – James

回答

0

這似乎是由於我如何設置遷移/種子而發生的。配置實際上是從兩個不同的地方拉出來的,一個地方有正確的SSL設置,另一個沒有(種子文件)。在兩個地方添加正確的設置似乎可以解決問題。