Не удается аутентифицировать пользователя с помощью Knex. js миграция: последнее в узле - PullRequest
0 голосов
/ 21 апреля 2020

Проблема:

Соответствующая информация: Windows 10, Node, knex, PostgreSQL

Я пытаюсь запустить команду knex CLI migrate : последнее из cmd, knex migrate:latest --env development.

Я получаю сообщение «Ошибка: аутентификация по паролю не удалась для пользователя»

Моя первая проблема с указанным пользователем - в моем файле конфигурации knexfile. js, я экспортирую объект разработки с определенным соединением, где определены все мои переменные окружения.

  development: {
    client: 'pg',
    connection: {
      host: "localhost",
      port: process.env.DB_PORT,
      username: process.env.DB_USER,
      password: process.env.DB_PW,
      database: process.env.DB_NAME
    }
  }

Поэтому, хотя я пытаюсь войти в БД как 'postgres', knex пытается войти в систему как Windows пользователя из соответствующего сообщения об ошибке, которое является моей единственной учетной записью на моем персональном компьютере. Я вошел в систему как этот пользователь, PostgreSQL был установлен с этой учетной записью пользователя, и база данных была инициализирована этим пользователем.

Используя psql, я могу войти в базу данных, указанную в моей конфигурации knex, используя пароль, указанный в моем коннекте knex. Фактически, я использую один и тот же пароль для всех пользователей, чтобы уменьшить количество переменных в моей проблеме.

Помимо попыток решить проблему таким образом, у меня есть все мои настройки аутентификации в моем pg_hba Для файла .conf установлено значение «trust», но это также не решает проблему.

1 Ответ

1 голос
/ 21 апреля 2020

Попробуйте использовать имя пользователя, пароль и имя базы данных в knexfile вместо использования process.env.XXXX и повторите попытку.

Похоже, что переменные среды не передаются на узел правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...