본문 바로가기
Database

[MySQL]git 저장소의 DB와 로컬 DB 연결하기

by 전봇대파괴자 2021. 5. 4.

django로 서비스를 개발할 때, git flow로 작업하는 다른 개발자와 MySQL DB를 연결, 연동하는 방법에 대한 문서이다.

 

MySQL Community 무료 버전과 MySQL workbench가 이미 설치된 상태라고 가정하겠다. 

git flow로 개발을 진행할 때면 팀원들이 같은 데이터베이스를 쓰고 수정하도록 연동하는 작업이 필요하다. 이 때 MySQL Commend Line Client와 Pycharm을 활용해 이를 수행할 수 있다. 

 

이 문서에서는 원격 저장소의 develop 브랜치에 이미 기본 DB가 생성된 상태라고 가정한다. 먼저 git bash를 통해 origin과 develop 브랜치를 clone하도록 하자.

$ git clone [프로젝트 원격 저장소 repository URL] # 원격 origin 저장소 clone 
$ git checkout -b origin/develop # 원격 저장소의 develop 브랜치 clone

 

 

1. MySQL에서 테이블 만들기

우선은 MySQL Commend Line Client으로 로그인하여 테이블을 생성해야 한다. 그리고 아이디와 비밀번호를 입력한 후 권한을 부여한다.

CREATE DATABASE DB 이름 default CHARACTER SET UTF8; 
CREATE USER 'USER ID'@'localhost' IDENTIFIED BY 'PASSWORD'; 
GRANT ALL PRIVILEGES on DB 이름.* TO 'USER ID'@'localhost'; 
FLUSH PRIVILEGES;

 

2. .env, .env.local 파일 만들고 secret key, database 정보 삽입

manage.py와 같은 경로에 환경 설정 파일인 .env, .env.local 파일을 생성한다. .env 파일 같은 경우 기본적인 환경 변수를 담고 있고, .env.local 같은 경우 로컬 환경에서 적용되는 환경 변수를 설정한다. 여기서는 database 정보와 secret key 등을 동일하게 입력한다.

# 아래의 정보는 절대 공개되어서는 안된다!!
SECRET_KEY="시크릿 키" 
DATABASE_USER="USER ID" 
DATABASE_PASSWORD="PASSWORD"

이 정보들은 보안상 원격 저장소에 올라가 노출되면 안 되므로 .gitignore에 반드시 추가해 두어야 한다.  

 

3. python runserver로 확인

$ python manage.py runserver

에러 없이 실행이 잘 된다면 DB 연결이 잘 된 것이다.

 

 

 

※ 참고 자료

github.com/entropitor/dotenv-cli/issues/37

 

Support .env, .env.local, .env. practice · Issue #37 · entropitor/dotenv-cli

Hey! Thanks for this awesome lib! It would be nice if dotenv-cli could read variables from multiple .env files. There is a common approach to use .env and .env.local, and maybe .env.<environment...< p=""> </environment...<>

github.com