erd diagram으로 export 해서 dbmate 만들기
1차 프로젝트 때 직접 dbmate 생성을 해보았기에,
다른 방법을 시도하고, 효율성을 중시하는 방향으로 추출하기로 했다.
1. 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
Project2 3일차 백엔드 플랜 미팅 part1
'Wecode - Project 2 (부트캠프) > Project 2 과정' 카테고리의 다른 글
Project 2- 4일차 (3): 회원가입, 로그인 API 구조화 (0) | 2023.09.21 |
---|---|
Project 2- 3일차: 백엔드 플랜 미팅 part2. [api 회의, 우선순위] (0) | 2023.09.21 |
Project 2- 3일 차: API 짜기 연습 ** (0) | 2023.09.20 |
project2- 2일차(3): layered pattern (0) | 2023.09.19 |
Product2 - 2일차(1) : ERD modeling (0) | 2023.09.19 |