Невозможно перенести производственную базу данных с Knex на Azure - PullRequest
0 голосов
/ 19 марта 2019

Я новичок в Knex.js, и у меня возникли проблемы с запуском миграции.У меня есть приложение, которое работает на Azure.Теперь мне нужно перенести свою производственную базу данных.

Я следую инструкции knex и добавляю флаг для среды, выполняя следующее.

knex migrate:latest --env production

Однако я не могу перенести базу данных, похоже, я все еще пытаюсь получить доступ к локальной базе данных.Часть моего кода ошибки следующая:

Error: connect EACCES 127.0.0.1:5432
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1182:14)

Я понятия не имею, как это происходит.Я запускаю команду в редакторе службы приложений Azure.Я также прикрепляю свой knexfile.js

    production: {
    client: 'postgresql',
    connection: `host=${process.env.DB_HOST} port=5432 dbname=${process.env.DB_NAME} user=${process.env.DB_USER} password=${process.env.DB_PASS} sslmode=required`,
    pool: {
        min: 2,
        max: 10,
    },
    migrations: {
        directory: './db/migrations',
        tableName: 'migrations'
    },
    seeds: {
        directory: './db/seeds'
    }
},

1 Ответ

0 голосов
/ 19 марта 2019

Вы передаете параметры подключения в виде строки шаблона, и он не распознается модулем pg, который используется под капотом, и я предполагаю, что он заменяет его значением по умолчанию.

Попробуйте заменить соединение с объектом

connection: {
  host: process.env.DB_HOST,
  port: 5432,
  database: process.env.DB_NAME,
  user: process.env.DB_USER,
  password: process.env.DB_PASS
}

Не уверен насчет sslmode, так как я не знаю, существует ли эта опция в knex.

...