npm i typeorm-extension
package.json scripts에 넣어준다.
"db:create": "ts-node ./node_modules/typeorm-extension/bin/cli.cjs db:create -d ./dataSource.ts",
"db:drop": "ts-node ./node_modules/typeorm-extension/bin/cli.cjs db:drop -d ./dataSource.ts",
"seed": "ts-node ./node_modules/typeorm-extension/bin/cli.cjs seed -d ./dataSource.ts",
"schema:drop": "ts-node ./node_modules/typeorm/cli.js schema:drop",
"schema:sync": "ts-node ./node_modules/typeorm/cli.js schema:sync",
"db:migrate": "npm run typeorm migration:run -- -d ./dataSource.ts",
"db:migrate:revert": "npm run typeorm migration:revert -- -d ./dataSource.ts",
"db:create-migration": "npm run typeorm migration:create -- ./src/migrations/",
"db:generate-migration": "npm run typeorm migration:generate -- ./src/migrations -d ./dataSource.ts"
npm run db:create DB생성
npm run start:dev 그리고 시작하면 테이블이 자동 생성된다.
하기 전에 src 폴더에서 database>seeds에
create-initial-data.ts 파일 안에
import { Seeder, SeederFactoryManager } from 'typeorm-extension';
import { DataSource } from 'typeorm';
import {Workspaces} from "../../entities/Workspaces";
import {Channels} from "../../entities/Channels";
export default class UserSeeder implements Seeder {
public async run(
dataSource: DataSource,
factoryManager: SeederFactoryManager
): Promise<any> {
const workspacesRepository = dataSource.getRepository(Workspaces);
await workspacesRepository.insert([{
id: 1, name: 'Sleact', url: 'sleact'
}])
const channelsRepository = dataSource.getRepository(Channels);
await channelsRepository.insert([{
id: 1, name: '일반', WorkspaceId: 1, private: false
}]);
}
}
npm run seed 초기 데이터를 넣어준다.