Wecode - Project 2 (부트캠프)/Project 2 과정

Project 2- 3일차: 백엔드 플랜 미팅 part1. dbmate [데이터베이스 생성]

JBS 12 2023. 9. 20. 19:26

erd diagram으로 export 해서 dbmate 만들기 

1차 프로젝트 때 직접 dbmate 생성을 해보았기에,

다른 방법을 시도하고, 효율성을 중시하는 방향으로 추출하기로 했다. 

 

1. dev에 가서 pull 받는다 

main으로 갔기에, checkout dev로 가서 pull

 

2. database 설정

dbmate 설정 파일을 migration 하여 팀원 모두 동일한 Database 설정을 가지도록 합니다. .env 의 DATABASE_URL=설정

 

 

DATABASE_URL="mysql://root:{root 비밀번호 - 설정하지 않았따면 콜론 채로 생략}@127.0.0.1:3306/ABCMartens"

 

(각자 로컬에 다른 데이터베이스 이름을 설정해도 영향 받지 않는데, 추후에 통일해야 해서 추가하기로 했다)

우리팀의 데이터베이스 이름은, ABCMartens

 

3. .env.sample 파일을 만들지 않아도 된다. 

.env파일에 넣어도 어짜피 remote에는 영향 받지 않기에 mysql 비밀번호 그대로 올려도 된다. 

 

 

4. mysql 에서 ABCMartens 로컬 데이터베이스 생성

깃허브에서 pull 받았기에, vscode에는 migration files가 있지만, 

mysql에 가 보면, 데이터베이스가 없다. 

 

 

CREATE DATABASE ABCMartens DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci

8 rows -> 9 rows 

ABCMartens Databases가 생긴다


5. dbmate migrate으로 mysql table 생성 

현재에는 아무것도 안 넣었기에, 

mysql에 table 찍어보면

"Empty set"로 아무것도 안 나오는데,

 

 

한번 칼럼 있는지 찍어보려고 하면, 

dbmate migrate  를 하면, 

create tables가 되고, 

schema.sql이 생긴다. 

 

(schema.sql: migration files을 다 모아둔 곳)

 

[schema.sql] 

 


table 중에 column이 있는지 확인해보고 싶으면 , desc로 찍어내보면 된다. 


2-6  migration files를 수정할 경우 

이제 erd diagram을 보면서, 수정할 게 있는지 본다 

 

그런데, 수정을 하게 되면, 

1차 프로젝트에서는,  alter ~~ modify ~~ 로 했는데, 

 

dbmate 에서 수정 후 database 삭ㅈ 

 

 

2-7 pull 로 최신화 

dev 브랜치에 변경사항이 있을 때마다 자신의 feature/~ 브랜치에서 로 브랜치의 버전을 업데이트

git pull origin dev

 

2-8 Conventions


본 repository는 커밋 컨벤션은 유다시티 커밋 컨벤션을 따릅니다.

 

참고링크

https://haesoo9410.tistory.com/300

 

<Git> 커밋 메시지 컨벤션 : 유다시티

1. 소개 - 지난 장에서 간단한 깃 커밋 컨벤션에 대해서 알아보았다. 이번 장에서는 가장 흔히 쓰이는 커밋 메시지 스타일인 유다시티의 스타일을 알아보자. 유다시티는 대규모 온라인 코스를 제

haesoo9410.tistory.com

 

 


Project2 3일차 백엔드 플랜 미팅 part1

 

Project 2- 3일차: 백엔드 플랜 미팅 part2. [api 회의, 우선순위]

0. 프론트엔드와의 짧은 sync 0-1. 상세페이지의 product image가 이동하는 것과, 썸네일 이미지들을 구현하는데 일정 내에는 어려울 수도 있는데, 프론트엔드만의 결정으로 진행할 수 없으니 백엔드

pm-developer-justdoit.tistory.com