#postgresql #nestjs #typeorm
#postgresql #nestjs #typeorm
Вопрос:
Я хочу подключиться к удаленной базе данных PostgreSQL (которая размещается на Heroku) и получить эту ошибку:
error: no pg_hba.conf entry for host "<My public IP address>", user "<username>", database "<dbname>", SSL off
Вот мой app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm';
const cfg: TypeOrmModuleOptions = {
type: 'postgres',
host: process.env.DB_HOST,
database: process.env.DB_NAME,
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
port: Number(process.env.DB_PORT),
};
@Module({
imports: [TypeOrmModule.forRoot(cfg)],
})
export class AppModule {}
Каждая DB_*
переменная соответствует соответствующим значениям в Heroku Database Credentials
Я думаю, что проблема где-то внутри TypeORM
, потому что подключение к той же БД с теми же .env
значениями файлов работало в моем другом приложении (написанном на другом языке программирования)
Есть идеи о том, что может быть не так?
Ответ №1:
Чтобы устранить проблему, мне пришлось добавить эти строки в мой объект cfg:
ssl: true,
extra: {
ssl: {
rejectUnauthorized: false,
},
},
С ssl: true
опцией нам придется использовать SSL-сертификат, которого у нас пока нет.
Идеальным решением является получение нового SSL-сертификата, но для разработки этого должно быть достаточно.
Ответ №2:
Я получил ту же ошибку и похож на ту же среду разработки, что и вы.
в моем случае я устранил ошибку, связанную с этим подключением Heloku Postgres в Node.js
Я выбрал альтернативный способ исключить конфигурацию ssl, как указано в ссылке.
в консоли вашего пути к проекту введите следующую команду.
конфигурация heroku: установить PGSSLMODE=нет-проверить