팀원들이 Django 서비스를 서빙하기 위해 각 기능들을 구현해놓았고,
Django의 각종 앱들의 구동에 필요한 DB를 매핑하는 작업을 했다.
장고에서 startproject를 통해 coin 폴더를 만들었고, 장고의 핵심 파일인 settings.py 파일은 coin 폴더 내에 있다.
그 외 account, chat, cobo, playcrypto 등의 기능은 startapp 을 통해 생성했다.
제목에서 말한 장고와 DB서버의 연동은 settings.py 파일을 수정하는 방식으로 진행했다.
settings.py 파일의 DATABASE 부분이다.
수정 전에는 장고 서비스의 DB부분이 로컬호스트로 매핑되어 있었다.
이번 작업을 통해 DB서버의 MySQL에 playcrypto 라는 데이터베이스를 생성하고
장고 서비스의 각종 기능들을 위한 DB로 사용할 예정이다.
일전에 GCP에서 새로운 인스턴스를 생성하며 해당 인스턴스 내에 Docker-compose를 통해 MySQL, MongoDB를 설치했다.
MySQL Workbench를 통해 해당 인스턴스 내의 MySQL에 접근하고, 장고 서비스에 쓸 playcrypto 데이터베이스 생성을 시도했다.
비밀번호를 치고 playcrypto_db 에 접속한다.
좌측의 데이터베이스 playcrypto를 만들고, 장고의 python manage.py migrate를 실행하면, 각 기능별 models.py와 외부 데이터베이스가 연동되면 제목에서 말한
가 완료된다.
하지만 MySQL 워크벤치에서는 단순하게 create database를 통해 playcrypto 데이터베이스를 생성하지 못했다.
MySQL Workbench 를 통해 DB가 있는 인스턴스로 접속을 한 경우,
권한 문제가 생기기 때문이었다.
이를 해결하기 위해
1.터미널을 통해 외부 인스턴스로 직접 접속한 후
2.그곳에서 쿼리문을 날려 root라는 사용자에게 스키마(데이터베이스)를 생성할 권한을 부여하고
3.다시 MySQL 워크벤치로 돌아와 데이터베이스를 생성할 것이다.
create database playcrypto;
를 통해 외부 DB에 playcrypto 라는 데이터베이스를 생성했다.
마지막으로 터미널로 가서, 장고의
python3 manage.py migrate
명령어를 통해
를 마무리한다.
감사합니다. 이런 정보를 나눠주셔서 좋아요.