sqlite.db는 깃으로 추적하지 않는데 커밋할때는 db변경관리 파일을 커밋해주어야 하는 이유

장서연·2021년 8월 27일
0

.gitinnore에서 db는 올리지 않는데 커밋할때는 db변경파일 즉 마이그레이션 파일은 왜 커밋을 함?

모델에 변화를 줄때마다, 마이그레이션 파일이 생긴다. 이를 깃에다 올리는 이유는, 내가 지금 개발하고 있는 이 환경이랑 나중에 추후 배포하게 될 그 환경이랑 동일하게 만들어주기 위함이다.
위 파일처럼 스키마가 쌓여있는데 아 물론 거기에서도 별도로 마이그레이션을 할 수도 있으나 그런식으로하면 스키마가 바뀔수도 있다. 그렇기 때문에, 배포할 환경과 스키마 구조를 동일하게 가져가기 위해 마이그레이션 파일들을 커밋해주는 것이다.

db파일을 올리지 않는 이유는,

이 파일형 db안에, 유저들의 모든 계정 정보, 게시글 정보 등이 db.sqlite3에 암호화되어 저장되어있기 때문에 깃헙에 올리게 되면 큰일남.

"실제 배포환경에서도 로컬에서 만들어진 변경들을 하나하나 따라가면서 db를 구성해야 뭔가 꼬임이 없기 때문임"

마이그레이션을 순서대로 하나하나해야됨. 순서가 달라지면 db스키마가 좀 달라질 수도 있기 때문임!

근데, 엄밀하게 따지면 조금 의미가 마이그레이션 파일이 조금 의미가 없는게, sqlite3라는 파일형 db 엔진을 사용하고 있고, 나중에 배포하게 될때는 즉, 실제 웹에다 배포하게 될 때는 MariaDB엔진을 사용하게 될 것이다.

즉.. 마리아db엔진이랑 현재 쓰고 있는 sqlite3 엔진이랑 다르기때문에 마이그레이션 파일대로 똑같이 한다고 db스키마가 동일하게 만들어진다는 보장이 없다.

실제로 개발을 할 때는, 로컬에서도 MariaDB, 배포할 때도 MariaDB이렇게 개발과 배포환경을 동일하게 맞춰주는 게 이상적임

0개의 댓글