Миграция knex: последняя не может подключиться, пока psql работает нормально - PullRequest
0 голосов
/ 26 июня 2018

Мне нужна помощь, чтобы выяснить, почему я не могу запустить миграцию 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)

Я использую Postgres на моем локальном MacBook.Это мой knexfile:

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. Спасибо!

1 Ответ

0 голосов
/ 27 июня 2018

Ваш 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"
    }
  }
}
...