尝试knex种子时出错:成功运行knex后运行:最新的远程数据库

时间:2016-07-25 08:02:12

标签: node.js postgresql knex.js

尝试对我的远程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"});
    })
};

1 个答案:

答案 0 :(得分:0)

这似乎是由于我如何设置迁移/种子而发生的。这些配置实际上来自两个不同的地方,一个是正确的SSL设置,另一个没有(种子文件)。在这两个地方添加正确的设置似乎解决了这个问题。