2016-07-25 90 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设置,另一个没有(种子文件)。在两个地方添加正确的设置似乎可以解决问题。