javascript - knex 迁移 :latest cannot connect while psql works fine

标签 javascript postgresql knex.js postgresql-9.5

我需要帮助弄清楚为什么我无法在本地计算机上运行 knex 迁移 使用。看来 knex 连接到 postgres 数据库时遇到了一些问题。在终端中运行 knex migration:latest 会出现以下错误:

⇒  knex migrate:latest
Using environment: development
Error: Unable to acquire a connection
at Client_PG.acquireConnection (/Users/moldot/prjx-albert/server/node_modules/knex/lib/client.js:332:40)
at Runner.ensureConnection (/Users/moldot/prjx-albert/server/node_modules/knex/lib/runner.js:233:24)
at Runner.run (/Users/moldot/prjx-albert/server/node_modules/knex/lib/runner.js:47:42)
at SchemaBuilder.Target.then (/Users/moldot/prjx-albert/server/node_modules/knex/lib/interface.js:39:43)
at Migrator._ensureTable (/Users/moldot/prjx-albert/server/node_modules/knex/lib/migrate/index.js:256:66)
at Migrator._listCompleted (/Users/moldot/prjx-albert/server/node_modules/knex/lib/migrate/index.js:405:17)

我在本地 Macbook 上使用 postgres。这是我的 knex 文件:

var PostgressConnectionStringParser = require('pg-connection-string');

module.exports = {
  heroku: {
    client: 'pg',
    connection: process.env.DATABASE_URL,
    migrations: {
      directory: "migrations",
      tableName: "migrations",
    },
  },
  development: {
    client: "pg",
    host: "localhost",
    port: 5432,
    username: "moldot",
    database: "c_dev",
    migrations: {
      directory: "migrations",
      tableName: "migrations",
    },
    ssl: true,
  },
}

运行psql工作正常:

⇒  psql -h localhost -p 5432 -U moldot -d c_dev
psql (10.1, server 9.5.4)
Type "help" for help.

c_dev=#

我正在 knexfile.js 所在的同一目录中运行该命令。谢谢!

最佳答案

您的 knexfile 的语法无效。您还没有在那里给出 connection 属性。

它应该看起来像这样:

module.exports = {
  heroku: {
    client: 'pg',
    connection: process.env.DATABASE_URL,
    migrations: {
      directory: "migrations",
      tableName: "migrations"
    }
  },
  development: {
    client: "pg",
    connection: {
      host: "localhost",
      port: 5432,
      username: "moldot",
      database: "c_dev",
    },
    migrations: {
      directory: "migrations",
      tableName: "migrations"
    }
  }
}

关于javascript - knex 迁移 :latest cannot connect while psql works fine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51034046/

相关文章:

javascript - 如何在 R 中运行原生 JavaScript 函数?

postgresql - 并发访问行 : making locked rows "invisible"

postgresql - Postgresql 8.3.1 中的 pg_config

javascript - 提交表单时出现未定义错误

javascript - 尝试在 XCTest 中进行模板测试

javascript - 如何在 Nodejs 中提取来自 sql 的结果

javascript - typescript /Knex : Cannot use import statement outside a module

javascript - AdonisJs 中是否可以显示数据库查询日志?

javascript - 文本颜色填充 CSS 过渡

java - Docker:OCI 运行时创建失败:container_linux.go:349:启动容器进程导致 "exec:\"java\": executable file not found in $PATH"