Как подключиться к серверному приложению heroku к базе данных postgres после обновления с хобби на стандарт с помощью node.js, express (generator) и knex - PullRequest
0 голосов
/ 09 мая 2019

Я обновляю свою базу данных heroku postgres с хобби (бесплатно) до стандарта 0 (оплачивается), потому что я приближаюсь к ограничению строк для плана хобби и не могу получить SSL для выдачи или "придерживаться" моего приложение, чтобы оно работало.

Я успешно выполнил инструкции pg: copy в документации Heroku, но после этого приложение не может получить доступ к новой базе данных. Я могу получить к нему доступ через POSTICO.

Исследования показывают, что это проблема SSL, поэтому я перешел на dynos для хобби (heroku ps: resize web = hobby), которые должны автоматически генерировать и назначать сертификат SSL для моего домена приложения в соответствии с документами Heroku.

Но, когда я делаю это, а затем запускаю:

heroku certs

Я получаю: my-app-name не имеет сертификатов SSL. Используйте сертификаты heroku: добавьте CRT KEY, чтобы добавить один

Когда я бегу:

heroku certs:auto

Я получаю:

Включение автоматического управления сертификатами ... запуск. Смотри статус с геройкой сертификатов: авто или жди пока активен с геройкой сертификатов: авто: ждать === Теперь вашим сертификатом будет управлять Heroku. Проверьте статус, запустив

heroku certs:auto

Но работает

heroku certs

по-прежнему выдает: my-app-name не имеет SSL-сертификатов

Бег

heroku certs:auto:wait

Я получаю: ничего ... просто новую строку в моей командной строке

Запуск

heroku certs:generate my-app-name.herokuapp.com

Я получаю:

Ваш ключ и запрос на подпись сертификата сгенерированы. Отправьте CSR в my-app-name.herokuapp.com.csr в предпочитаемый центр сертификации.

Я не знаю, что это значит, и, кроме того, как говорят в Heroku, это должно быть сделано для меня.

ТАКЖЕ: я добавил пару ключ-значение ssl: true к своему производственному объекту в knexfile.js

production: {
    client: 'pg',
    connection: process.env.DATABASE_URL,
    ssl: true
  },

1 Ответ

0 голосов
/ 13 мая 2019

Я закончил тем, что открыл билет помощи с Heroku. Убедившись, что процесс pg: copy действительно выполнялся правильно, мне было предложено это решение, которое решило проблему, очень опытным инженером Heroku по имени Тейлор Джонс.

Кажется, что ваш экземпляр Knex все еще не использует SSL, несмотря на ваш Конфигурация, указывающая на это. Попробуйте добавить следующий конфиг переменная для вашего приложения:

heroku config:set PGSSLMODE=require

Это должно добавить дополнительный уровень защиты вашего SSL подключение к вашему экземпляру Postgres. Дайте мне знать, если это не сработает или.

...