【发布时间】:2016-08-01 15:26:31
【问题描述】:
我在尝试对我的远程 postgres 数据库(不是本地主机)运行 knex seed:run 时遇到以下错误:Knex:Error Pool2 - Error: connect ECONNREFUSED 127.0.0.1:5432。
我能够成功运行knex migrate:latest,并且可以看到表是在我的 postgres 服务器上创建的,但是当我尝试播种时,我得到了那个错误。我已经针对我的本地配置运行了相同的迁移/种子文件,并且它运行没有问题,但是当我尝试为我的 heroku postgres 实例播种时,它抛出了这个错误(当我没有运行我的本地 pg 服务时) m 播种新数据库,这可能是它抛出错误的原因)。
关于它为什么尝试连接到 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"});
})
};
【问题讨论】:
-
嗨,您可以对您的 kexfile.js、一两次迁移和一些种子进行采样吗?我只是在猜测,但也许种子可能没有返回承诺或构建器,可能由于错误而得到错误的配置文件......如果可能,请提供更多信息。
-
感谢您的回复,我在主帖中添加了一些代码。
标签: node.js postgresql knex.js