Итак, у меня проблема с подключением к базе данных в гнезде. js с typeorm и postgres. У меня локальный экземпляр postgres работает на docker. Но когда я запускаю приложение с помощью yarn start, он выдает эту ошибку:
[Nest] 12736 - 2020-08-05 10:05:22 [TypeOrmModule] Unable to connect to the database. Retrying (1)... +86ms
QueryFailedError: no schematic representation of the creation of the object was indicated
Мой основной модуль приложения
@Module({
imports: [TypeOrmModule.forRoot(configService.getTypeOrmConfig()), UsersModule, LoginModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
Моя конфигурация
public getTypeOrmConfig(): TypeOrmModuleOptions {
return {
type: 'postgres',
host: this.getValue('POSTGRES_HOST'),
port: parseInt(this.getValue('POSTGRES_PORT')),
username: this.getValue('POSTGRES_USER'),
password: this.getValue('POSTGRES_PASSWORD'),
database: this.getValue('POSTGRES_DATABASE'),
entities: [__dirname + "/../**/*.entity{.ts,.js}"],
synchronize: true,
};
}
Мой файл env
POSTGRES_HOST=127.0.0.1
POSTGRES_PORT=5432
POSTGRES_USER=postgres
POSTGRES_PASSWORD=kacluk123
POSTGRES_DATABASE=my_database
PORT=3000
MODE=DEV
Скрипт для запуска докера / postgres
#!/bin/bash
set -e
SERVER="my_database_server";
PW="kacluk123";
DB="my_database";
echo "echo stop & remove old docker [$SERVER] and starting new fresh instance of [$SERVER]"
(docker kill $SERVER || :) && \
(docker rm $SERVER || :) && \
docker run --name $SERVER -e POSTGRES_PASSWORD=$PW \
-e PGPASSWORD=$PW \
-p 5432:5432 \
-d postgres
# wait for pg to start
echo "sleep wait for pg-server [$SERVER] to start";
SLEEP 3;
# create the db
echo "CREATE DATABASE $DB ENCODING 'UTF-8';" | docker exec -i $SERVER psql -U postgres
echo "\l" | docker exec -i $SERVER psql -U postgres