이슈 해결 - [TypeORM] DB migration file generate

2024. 4. 21. 13:04NestJS

TypeORM을 이용하던 도중 migration을 위한 명령어를 통하여 migration file을 생성하려고 했다.

migration file을 생성하기 위한 명령어는 creategenerate가 있다.

typeorm migration:create ./path-to-migrations-dir/PostRefactoring
// or
typeorm migration:generate -d <path/to/datasource> path/to/migrations/<migration-name>

 

create로 migration file을 생성하면 class 안에 up과 down 메서드를 제외하고 아무것도 있지 않지만 generate로 migration file을 생성하면 안에 코드가 들어있다. 이번에는 차이를 설명하는 것이 아닌 이슈 해결에 중점을 두어 쓰는 글이기에 둘의 차이는 멍개님의 블로그를 보면 좋을 듯 합니다 :) 

 

TypeORM의 버전이 0.2에서 0.3으로 올라가며 create로 생성하는 경우 default 경로를 지정하여 이름만 작성하여 default경로에 migration file에 작성되지 않는 이슈가 있었다. 다른 사람들이 이미 먼저 이슈를 오픈했으나 아직 TypeORM에서는 기능을 새로 넣어주지 않은 모양이다.. https://github.com/typeorm/typeorm/issues/8814

 

Typeorm CLI not works perfectly after 0.3.0 · Issue #8814 · typeorm/typeorm

Issue Description After version 0.3.0 cli does not work perfectly. when I try to create an entity or migration using cli is create entity or migration in the root directory. However, in the old ver...

github.com

 

하지만 어거지로 매번 경로를 앞에 붙여서 생성하기 귀찮았던 나는 이슈를 읽어보며 해결방법을 찾았다!!

"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
"migration:create": "npm run typeorm migration:create ./migrations/$npm_config_name",

 

package.json에 script 부분에 위와 같이 수정한 다음 아래의 명령어를 사용하면 된다.

npm run migration:create --name=<마이그레이션 이름>

 

아쉬운 점은 yarn은 사용되지 않고 npm만 사용 가능하다... (분명 개인프로젝트에서는 되었는데 회사에서 사용하니 안 되는 것을 보고 이슈를 찾아보니...)

 

 

'NestJS' 카테고리의 다른 글

[TypeORM] CLI 환경에서 Migration 하기 (with NestJS)  (2) 2024.06.16
[NestJS] TypeORM 설정  (0) 2024.04.21