尝试对我的远程postgres数据库(而非localhost)运行knex seed:run
时,我遇到以下错误:Knex:Error Pool2 - Error: connect ECONNREFUSED 127.0.0.1:5432
。
我能够成功运行knex migrate:latest
并且可以看到这些表是在我的postgres服务器上创建的,但是当我尝试播种时我得到了这个错误。我已经针对我的本地配置运行相同的迁移/种子文件并且它没有问题,但是当我尝试播种我的heroku postgres实例时,它会抛出此错误(我没有运行我的本地pg我在为新数据库播种时提供服务,这可能是他们抛出错误的原因。)
有关为什么尝试连接到localhost而不是指定的数据库的任何想法?我的文件样本如下:
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: "test@test.com"}).save(null, {method: "insert"});
}).then(function() {
return new Project({id: 1, name: "Test"}).save(null, {method: "insert"});
})
};
答案 0 :(得分:0)
这似乎是由于我如何设置迁移/种子而发生的。这些配置实际上来自两个不同的地方,一个是正确的SSL设置,另一个没有(种子文件)。在这两个地方添加正确的设置似乎解决了这个问题。