Как в NestJS сделать предустановку записей в базу?

Для предустановки записей в базу данных в NestJS вы можете воспользоваться функциональностью Seeder, предоставляемой пакетом TypeORM. Seeder - это класс, который позволяет вам создавать и сохранять предустановленные данные в базе данных.

Для начала, вам необходимо установить TypeORM и его зависимости, если они еще не установлены:

npm install typeorm pg

Затем вы должны создать сидер. Создайте новую папку с именем "seeders" внутри папки вашего проекта и создайте файл сидера, например "database.seed.ts". В этом файле вы можете создать класс Seeder, который будет содержать метод для создания предустановленных данных.

import { Seeder, Factory } from 'typeorm-seeding';
import { Connection } from 'typeorm';
import { User } from './entities/user.entity';

export default class DatabaseSeeder implements Seeder {
  public async run(factory: Factory, connection: Connection): Promise<any> {
    await factory(User)().createMany(10);
  }
}

Затем вам необходимо настроить вашу среду выполнения, чтобы использовать сидер в нужное время. Сделайте это в файле "main.ts":

import { NestFactory } from '@nestjs/core';
import { SeederModule } from 'typeorm-seeding';
import { DatabaseSeeder } from './seeders/database.seed';

async function bootstrap() {
  const app = await NestFactory.createApplicationContext(SeederModule);
  const seeder = app.get(DatabaseSeeder);
  await seeder.run();
  await app.close();
}
bootstrap();

Теперь, когда вы запустите ваше приложение NestJS, данные будут предварительно установлены в базу данных.

Обратите внимание, что для работы этого решения вам также понадобится настроить конфигурацию TypeORM, включая подключение к базе данных и объявление сущностей, таких как User. Вы можете ознакомиться с документацией TypeORM для получения более подробной информации о настройке конфигурации.

Также стоит отметить, что вам может потребоваться установить пакет "typeorm-seeding" для поддержки сидера. Вы можете установить его следующей командой:

npm install typeorm-seeding

Надеюсь, что эта информация будет полезна для вас при создании предустановленных данных в NestJS. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задать их.