尝试针对我的远程 postgres 数据库(不是本地主机)运行 knex seed:run
时出现以下错误:Knex:Error Pool2 - Error: connect ECONNREFUSED 127.0.0.1 :5432
.
我能够成功运行 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: "test@test.com"}).save(null, {method: "insert"});
}).then(function() {
return new Project({id: 1, name: "Test"}).save(null, {method: "insert"});
})
};
这似乎是由于我如何设置迁移/种子而发生的。这些配置实际上是从两个不同的地方提取的,一个有正确的 SSL 设置,另一个没有(种子文件)。在这两个地方添加正确的设置似乎可以解决问题。
Tôi là một lập trình viên xuất sắc, rất giỏi!