Skip to content

Commit

Permalink
FIXUP: add initial README for API
Browse files Browse the repository at this point in the history
  • Loading branch information
skgndi12 committed Oct 24, 2023
1 parent 98582f6 commit 78a84bc
Showing 1 changed file with 3 additions and 11 deletions.
14 changes: 3 additions & 11 deletions api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ Docker 관련 모든 명령어는 `api` 폴더에서 실행하도록 합니다.

1. Docker image 다운로드
```bash
docker-compose pull # 이미지 다운로드
docker compose pull # 이미지 다운로드
```

2. Docker container 생성 및 실행
```bash
docker-compose --env-file .env -p mrc-api up -d # 컨테이너를 백그라운드에 생성 및 실행
docker compose --env-file .env -p mrc-api up -d # 컨테이너를 백그라운드에 생성 및 실행
```

3. Docker container 정지 및 삭제 (모든 인프라 사용이 종료됐을 경우)
```bash
docker-compose -p mrc-api down # 컨테이너 정지 및 삭제
docker compose -p mrc-api down # 컨테이너 정지 및 삭제
```

# DB 설정
Expand All @@ -50,8 +50,6 @@ npm run generate-models # ORM 클라이언트 타입 갱신
npm run studio # DB GUI 실행
```



## 마이그레이션
로컬에서 마이그레이션을 하는 경우 먼저 [로컬 인프라 설정](#로컬-인프라-설정) 의 과정을 완료합니다.

Expand All @@ -68,14 +66,12 @@ npm run studio # DB GUI 실행
> [!NOTE]
> 올바르게 환경 변수가 로드 되지 않았을 경우, 마이그레이션의 다음 과정에서 문제가 생길 수 있습니다. 따라서 `printenv` 명령어를 통해 환경 변수의 값이 쉘에 제대로 로드 되었는지 먼저 확인하도록 합니다.


### 3. 마이그레이션 롤백 파일 생성
`npm run migrate-create:down` 명령어를 실행시켜 마이그레이션 롤백 파일을 생성합니다. 명령어를 통해 생성된 `down.sql` 파일은 이후 [4.마이그레이션 파일 생성](#4-마이그레이션-파일-생성) 과정을 마친 후 생성된 폴더로 이동시킵니다.

> [!NOTE]
> 마이그레이션 롤백 파일을 만들기전에 마이그레이션 파일을 생성하면 히스토리가 갱신되기 때문에 롤백 파일이 제대로 생성되지 않을 수 있습니다. 따라서 반드시 마이그레이션 파일을 생성하기 전에 롤백 파일을 먼저 생성하도록 합니다.


### 4. 마이그레이션 파일 생성
`npm run migrate-create:up` 명령어를 실행시켜 마이그레이션 파일을 생성합니다.

Expand All @@ -96,7 +92,6 @@ The following migration(s) are applied to the database but missing from the loca
Do you want to continue? All data will be lost.
```


### 5. 마이그레이션 적용
마이그레이션 적용은 상황에 따라 다를 수 있습니다.

Expand All @@ -112,7 +107,6 @@ Do you want to continue? All data will be lost.
**Case 2: 아직 적용되지 않은 마이그레이션만 적용**
이미 존재하는 데이터베이스에 아직 적용되지 않은 마이그레이션만 적용하고자 할때는 `npm run migrate-apply:latest` 명령어를 사용합니다. 이미 적용된 마이그레이션은 스킵하고 적용되지 않은 내용만 적용하기 때문에 실제 서비스 환경에서 사용하기 적합합니다. 실제 서비스 환경에서 처음으로 마이그레이션을 적용한다면 [baselining](https://www.prisma.io/docs/guides/migrate/developing-with-prisma-migrate/baselining) 과정을 마친 후 마이그레이션을 진행하도록 합니다.


### 6. 마이그레이션 롤백
마이그레이션을 롤백을 위해서는 [3.마이그레이션 롤백 파일 생성](#3-마이그레이션-롤백-파일-생성) 의 과정을 통해 생성한 마이그레이션 롤백 파일의 위치를 확인해야합니다. 파일의 위치를 확인하고 나서는 다음과 같이 명령어를 실행합니다.

Expand All @@ -126,13 +120,11 @@ npm run migrate-apply:rollback -- --file $rollback_file
### 마이그레이션 실패시 대처
마이그레이션이 실패했을시에는 다음의 [문서](https://www.prisma.io/docs/guides/migrate/developing-with-prisma-migrate/troubleshooting-development#schema-drift)를 참고하여 대처하도록 합니다.


# 서버 실행
로컬 환경에서 서버를 실행시킬 경우 다음 두 가지를 먼저 확인합니다.
1. [로컬 인프라 설정](#로컬-인프라-설정)에서 로컬 인프라가 올바르게 설정됐는지 확인.
2. [마이그레이션 진행](#마이그레이션)을 통해 변경된 스키마가 DB에 올바르게 반영됐는지 확인.


두 가지 사항 확인이 됐으면 아래의 과정을 통해 서버를 실행시킵니다.

1. 패키지 다운로드
Expand Down

0 comments on commit 78a84bc

Please sign in to comment.