[NestJS] Faker 연동
2024. 7. 23. 18:05ㆍNestJs
728x90
반응형
1. 모듈 설치
npm i typeorm-extension @faker-js/faker
typeorm 버전이 0.3.0부터는 nestjs-seeding가 적용이 되지않아 typeorm-exrtension을 설치하여야합니다.
2.Seed 코드 작성
import { faker } from "@faker-js/faker";
import { UsersEntity } from "../../entities/users.entity";
import { DataSource } from "typeorm";
import { Seeder, SeederFactoryManager } from "typeorm-extension";
export class UserSeeder implements Seeder {
public async run(dataSource: DataSource, factoryManager: SeederFactoryManager): Promise<void> {
const data = [];
for (let i = 1; i <= 100; i++) {
data.push({
email: faker.internet.email(),
name: faker.internet.userName(),
password: faker.internet.password(),
});
}
await dataSource.createQueryBuilder().insert().into(UsersEntity).values(data).execute();
}
}
3.ormconfig.ts 작성
import { DataSource } from "typeorm";
import "dotenv/config";
import { BoardsEntity } from "./src/entities/boards.entity";
import { CardAssigneesEntity } from "./src/entities/card-assignees.entity";
import { CardCheckListEntity } from "./src/entities/card-check-list.entity";
import { CardCommentsEntity } from "./src/entities/card-comments.entity";
import { CardsEntity } from "./src/entities/cards.entity";
import { FilesEntity } from "./src/entities/files.entity";
import { ListsEntity } from "./src/entities/lists.entity";
import { MembersEntity } from "./src/entities/members.entity";
import { NotificationEntity } from "./src/entities/notification.entity";
import { RefreshTokensEntity } from "./src/entities/refresh-tokens.entity";
import { UsersEntity } from "./src/entities/users.entity";
const config = new DataSource({
type: "mysql",
host: "localhost",
port: 3306,
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
entities: [
UsersEntity,
BoardsEntity,
ListsEntity,
CardsEntity,
FilesEntity,
CardAssigneesEntity,
CardCheckListEntity,
CardCommentsEntity,
MembersEntity,
NotificationEntity,
RefreshTokensEntity,
],
synchronize: true,
logging: true,
});
export = config;
4.package.json파일에 scrtipts 추가
"scripts": {
"seed:config": "ts-node ./node_modules/typeorm-seeding/dist/cli.js config",
"seed:run": "ts-node ./node_modules/typeorm-seeding/dist/cli.js seed"
},
728x90
반응형
'NestJs' 카테고리의 다른 글
[NestJS] Postman auth에 토큰 보내기 (0) | 2024.08.07 |
---|---|
[NestJS] Unknown column in where clause 에러 발생 (0) | 2024.07.25 |
[NestJS] AWS S3에 파일 업로드 @aws-sdk/client-s3 (0) | 2024.07.15 |
Restful한 API 설계 규칙 (0) | 2024.07.12 |
[NestJS] multer를 사용하여 File upload하기 (0) | 2024.07.11 |