본 게시물은 해당 웹 프로젝트를 같이 하는 팀원들을 위해 작성되었습니다.
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;
꼭 빠짐없이 위 단계를 해내야한다...^^
1번이 완료됐으면, 이제 프로젝트 루트 디렉토리(settings.py가 있는 디렉토리)에 my_settings.py 파일을 추가로 생성한다. 다른 파일 이름 금지... 꼭 파일 이름을 my_settings.py로 입력해주세요 ㅠㅠ
각 개발자는 my_settings.py 파일 내에서 데이터베이스 설정을 입력한다.
DATABASES 설정을 자신의 로컬 데이터베이스에 맞게 변경합니다.
주의 사항) 변수만 사진과 똑!같!이! 입력해주세요 (ex. MY_SECRET, 'default' 등등)
➡️ 그런 후 저장(ctrl+S)하심 됩니다.
아 그리고 질문이 나올까봐 하는 말인데
팀원마다 데이터베이스 설정이 다르면 push했을 때 충돌이 일어나지 않냐고 궁금할 수도 있는데, git push해도 괜찮아요!
제가 .gitignore에 my_settings.py 넣어놔서 원격 저장소에는 자동으로 올라가지 않습니다. (즉, 충돌 ✖️✖️)
각 팀원은 로컬 개발 환경에서 모델 변경을 진행한 후, makemigrations 명령을 실행하여 마이그레이션 파일을 생성합니다. 그리고 migrate 명령을 실행하여 변경 사항을 로컬 데이터베이스에 적용합니다.
⬇️⬇️⬇️
$ python manage.py makemigrations
$ python manage.py migrate
각 팀원은 가상환경에서 위 명령어 수행하여 superuser 생성해주세요. 그래야 url /admin 페이지에 접속하여 로그인 가능합니다.
이러한 순서를 따르면 개발자 각각이 자신의 로컬 환경에서 데이터베이스 설정을 관리하고, 데이터베이스 스키마 변경과 마이그레이션을 독립적으로 처리할 수 있습니다. 이로써 효과적인 협업과 동시에 보안을 유지할 수 있게 됩니다.