본문 바로가기
💻 개발블로그/django

Django심화강의:2주차(01)(20220214)

by August.J 2022. 2. 14.

😎 Github-action에서 디버깅

 

📖 마이그레이션

python manage.py migrate

파이썬에서 데이터베이스가 변경이 되면 마이그레이션을 해줘야 한다. 

마이그레이션 후 데이터베이스를 새로고침하면 해당 db에 테이블이 생성됨을 확인할 수 있다.

 

마이그레이션의 필요성?

소스코드를 git에서 관리하듯이 데이터베이스를 관리는 마이그레이션으로!

마이그레이션은 변경이력을 저장하므로 유용하다! 


🔎 ssh 키 생성하기

# ssh 키 생성하기

(windows는 git bash로 ssh연결한다.)

ssh-keygen -t rsa - 입력창은 Enter로 패스!

 

- git bash에 있던 경로에서 id_rsa.pub 메모장으로 열어서 내용 복사하기.

 

# github에서 ssh키 추가하기

- github -> setting에서 ssh키 추가하기(위의 과정에서 복사한 내용 붙여넣기)

 

# ssh에 들어가기

github-action의 workflows에서 tmate session의 ssh ~~~.tmate.io 부분 붙여넣고 바로 이어서 -i ~/.ssh/id_rsa 입력

ssh Lp6dLg9S6uQ8ntmSSJjR4mWVv@sfo2.tmate.io -i ~/.ssh/id_rsa 입력 후 yes

ssh fzWj2TKUMgmD6b7TK54Bmmycf@sfo2.tmate.io -i ~/.ssh/id_rsa


🔎 파이참에서 github-action 내부 들어가기

- 파이참에서 ssh붙여넣기 Enter, 안내문구 나오면 ctrl+C (continue, 안내메시지 건너뛰기)

 

- ls 입력하면 github action 내부로 들어간다.


🔎 mysql 켜고 확인하기

< mysql 서비스 상태 확인 >

그대로 sudo systemctl status mysql 입력

(화면에서는 inactive(dead) 서비스 꺼진 상태, 다시 켜줘야함)

 

< mysql 켜기 >

sudo systemctl start mysql (다시 status 조회하면 active상태)

 

< mysql 접속 >

mysql -uroot -proot (기본 root계정 비번은 root)

< root 비밀번호 변경 >

(mysql안에 mysql데이터베이스가 있고 계정정보등이 default값으로 들어있다.)

1. use mysql;

2. FLUSH PRIVILEGES;  계정정보 변경이 FLUSH 해줘야 반영

3. ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';  Alter구문으로 계정정보 입력

4. exit;

 

계정이 잘 변경되었는지 확인하려면 mysql -uroot -p12345 p다음 비밀번호 입력


🔎 시간대 수정하기

시간대 수정할 때는 mysql exit; 후 경로에 코드입력, SELECT NOW();는 mysql에 입력.

 

- SELECT NOW(); 입력 후 현재 국가시간과 불일치한지 확인

- Asia/Seoul 시간으로 변경

sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

- 시간대 변경 코드 입력 후 mysql재시작 해야 반영된다.

sudo systemctl start mysql


🔎 데이터베이스 연결

< 데이터베이스 생성 >

CREATE DATABASE 'db명'; ( 예시: CREATE DATABASE sparta; )

- exit;

< 데이터베이스 확인하고 서버 실행하기 >

- ls 와 cd 를 입력하여 데이터베이스 확인한다.

- poetry run python manage.py runserver 입력

- Finally 장고서버 연결 성공!


# 오류/문제

ssh다시 접속하려고 했을 때 들어갈 수 없는 문제 발생.

다시 ssh안에 들어가서 모든 설정 차근히 해보니 해결이 되었다.

github-action도 다시 run해보고 docker-desktop 컨테이너도 확인해보고 코드를 차근차근 입력해보았다.

몇번의 반복이 있긴 했지만 일시적인 오류가 아니었을까 추측해본다.