[MySQL] Django DB 설정 (팀원 ver.)

yukongs·2023년 8월 16일
0
post-custom-banner

본 게시물은 해당 웹 프로젝트를 같이 하는 팀원들을 위해 작성되었습니다.

1. mysql 설치 및 설정 (중요)

  1. MySQL 서버 설치(되어 있으면 pass)
  2. MySQL 서버 실행(서비스-MySQL 실행되어 있는지 확인)
  3. mySQL 클라이언트 접속후 입력:
    보통 C:\Program Files\MySQL\MySQL Server 8.0\bin 경로로 가서
start mysqld

한 다음, 아래 명령어를 입력하여 로그인함.

mysql -u root -p

그러고 새로운 데이터베이스를 만들어주고 유저 및 패스워드 등록을 해준다.
여기서 your_local_db_xx는 자유롭게 자기가 원하는대로 설정해주면 됩니다.

> CREATE DATABASE your_local_db_name;
> CREATE USER 'your_db_user'@'localhost' IDENTIFIED BY 'your_db_password';
> GRANT ALL PRIVILEGES ON your_local_db_name.* TO 'your_db_user'@'localhost';
> FLUSH PRIVILEGES;

꼭 빠짐없이 위 단계를 해내야한다...^^

2. my_settings.py 파일 생성:

1번이 완료됐으면, 이제 프로젝트 루트 디렉토리(settings.py가 있는 디렉토리)에 my_settings.py 파일을 추가로 생성한다. 다른 파일 이름 금지... 꼭 파일 이름을 my_settings.py로 입력해주세요 ㅠㅠ

3. my_settings.py 데이터베이스 설정 입력:

각 개발자는 my_settings.py 파일 내에서 데이터베이스 설정을 입력한다.
DATABASES 설정을 자신의 로컬 데이터베이스에 맞게 변경합니다.
주의 사항) 변수만 사진과 똑!같!이! 입력해주세요 (ex. MY_SECRET, 'default' 등등)

➡️ 그런 후 저장(ctrl+S)하심 됩니다.

아 그리고 질문이 나올까봐 하는 말인데
팀원마다 데이터베이스 설정이 다르면 push했을 때 충돌이 일어나지 않냐고 궁금할 수도 있는데, git push해도 괜찮아요!
제가 .gitignore에 my_settings.py 넣어놔서 원격 저장소에는 자동으로 올라가지 않습니다. (즉, 충돌 ✖️✖️)

4. makemigrations와 migrate 수행:

각 팀원은 로컬 개발 환경에서 모델 변경을 진행한 후, makemigrations 명령을 실행하여 마이그레이션 파일을 생성합니다. 그리고 migrate 명령을 실행하여 변경 사항을 로컬 데이터베이스에 적용합니다.
⬇️⬇️⬇️

$ python manage.py makemigrations
$ python manage.py migrate

5. python manage.py createsuperuser 하기

각 팀원은 가상환경에서 위 명령어 수행하여 superuser 생성해주세요. 그래야 url /admin 페이지에 접속하여 로그인 가능합니다.

이러한 순서를 따르면 개발자 각각이 자신의 로컬 환경에서 데이터베이스 설정을 관리하고, 데이터베이스 스키마 변경과 마이그레이션을 독립적으로 처리할 수 있습니다. 이로써 효과적인 협업과 동시에 보안을 유지할 수 있게 됩니다.

profile
보안/개발/대학생
post-custom-banner

0개의 댓글