6월 5일자 hotfix
[오류 개선]
검색 페이지 로드 함수에 await 구문을 사용함에도 함수를 async function으로 정의하지 않아 오류가 발생 → 문법에 맞춰 async를 작성해 해결
games 앱의 view 함수들 중 game detail API view class의 put() 메서드에서 screenshot을 처리하는 코드 부분의 indent가 의도한 대로 되어있지 않던 부분 수정
메인 페이지, 검색 페이지의 카드들의 정상적인 정렬을 위해 속성 및 요소 상속 구조 변경
로그인 페이지, 회원가입 페이지에 상단 바(navbar)와 하단 바(footer)가 없었던 부분 수정
게임 생성 페이지에서 screenshot의 입력과 삭제 동작이 원활하지 않던 부분 수정
유저 페이지에서 유저가 등록한 게임 목록을 볼 때 삭제한 게임들까지 모두 보이던 오류 수정
AWS RDS PostgreSQL migration - 2
[기능 구현]
- nginx - postgreSQL 연결 작업
기존에 생성한 EC2 인스턴스는 테스트용 서버였다.
처음엔 DB 관리용 EC2 인스턴스를 생성하여 관리하는 것인 줄 알았는데 이미 RDS를 생성한 것이 하나의 별도 인스턴스를 생성한 것이였어서 DB를 별도의 인스턴스로 관리한 것이 됐다.
테스트용 서버에서 DB 연결을 위해 했던 설정들을 배포 서버가 동작하고 있는 인스턴스에서 똑같이 해주고 PostgreSQL migration을 마무리했다.
- 기존 sqlite3 파일에 존재하고 있는 row 데이터를 RDS로 옮기는 작업
Moving Data from SQLite to PostgreSQL: 2 Easy Methods | Hevo (hevodata.com)
Moving Data from SQLite to PostgreSQL: 2 Easy Methods | Hevo
This blog provides 2 easy methods to load data from SQLite to PostgreSQL seamlessly. Read along to learn the steps & best practices for this data migration.
hevodata.com
# 배포 서버
python3 manage.py dumpdata > whole.json
# 테스트 서버(PostgreSQL 연결한 상태)
python3 manage.py migrate
# 테스트 서버(PostgreSQL 연결한 상태) shell 접속
python3 manage.py shell
# shell 에서 아래 두 코드 입력
from django.contrib.contenttypes.models import ContentType
ContentType.objects.all().delete()
# 테스트 서버에서 whole.json 파일을 가지고 data load
python3 manage.py loaddata whole.json
AWS S3 Static & Media migration - 1
[기능 구현]
배포 서버의 Static 파일과 Media 파일을 AWS의 S3 버킷을 이용해 관리할 수 있도록 구조를 잡는 작업을 진행했다.
버킷을 생성하고, 각 버킷은 static, media에 대응하도록 하려고 했으나
프로젝트의 settings.py에서 설정하는 부분과 nginx 설정에서 제대로 된 방법을 알아내지 못했다.
AWS_LOCATION 설정 덕분에 배포 서버에서 python3 manage.py collectstatic 명령어로 static 버킷의 static/staticfiles 폴더에서 파일들이 collect 되는 동작은 수행할 수 있었지만
media 파일 GET 요청 시 AWS_LOCATION으로 인해 잘못된 경로로 요청하고 있음을 확인했다. (/media/<media 파일 경로> 와 같은 형태여야 하는데 /static/staticfiles/<media 파일 경로>와 같이 설정돼서 요청을 보내게 된다) 이 부분을 해결해야 한다.
기존에는 alias 문으로 서버 내의 폴더 구조를 가리키게 했지만
이젠 AWS S3 서버에 올라간 버킷을 가리키도록 해야 해서 정확하게 nginx config 파일을 작성하는 방법을 알아내야 한다.
앞으로 해야할 일
- 정확한 django-storages settings 방법
- 정확한 nginx - S3 설정
- media 파일을 제대로 불러올 수 있도록 하기 (위 두 과정 수반)
'프로젝트' 카테고리의 다른 글
[TIL] 20240607 80일차 (0) | 2024.06.07 |
---|---|
[TIL] 20240606 79일차 (0) | 2024.06.06 |
[TIL] 20240604 77일차 (1) | 2024.06.04 |
[TIL] 20240603 76일차 (0) | 2024.06.03 |
20240527 ~ 20240531 15주차 정리 (1) | 2024.05.31 |