django/오류
docker 오류 잡기(migrations)
you__me
2024. 2. 16. 18:00
이번에도 역시 오류가 많이 났다.
- django.db.migrations.exceptions.NodeNotFoundError: Migration accounts.0001_initial dependencies reference nonexistent parent node ('auth', '0012_alter_user_first_name_max_length')
- django.db.utils.OperationalError: (1130, Host '172.29.0.3' is not allowed to connect to this MySQL server)
accounts 앱의 migrations 파일의 종속성을 0011_update_proxy_permissions로 수정해주었더니 해결됐다!
특히 아래 오류는 왜 난건지 모르겠다.
다른 사람들은 MySQL 충돌이 났다던가 인바운드 규칙 설정이라던가 해주는데 나는 전부 시도해도 안됐음.
특히 잘되다가 갑자기 안돼서 이유를 모름.
class Migration(migrations.Migration):
initial = True
# 수정 후
dependencies = [
('auth', '0011_update_proxy_permissions'),
]
# 수정 전
# dependencies = [
# ('auth', '0012_alter_user_first_name_max_length'),
# ]
docker로 MySQL DB를 만들 때 한글 설정을 해주어야 하는 번거로움도 해결했다.
# docker-compose.yml
version: '3'
services:
db:
container_name: db
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_HOST: '%'
MYSQL_ROOT_PASSWORD: mysql
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --skip-character-set-client-handshake
expose:
- 3306
ports:
- "3307:3306"
env_file:
- .env
volumes:
- dbdata:/var/lib/mysql
command를 추가함.
db가 만들어진 후에 수정하는 방식은 적용이 잘 안된다. 이게 젤 나은듯.
docker를 실행할 때 install 과정에서도 오류가 정말 많이 난다.
Django를 최신 버전으로 사용하게 되면(4이상) 오류가 나는 듯. 나는 3.0.8 버전을 주로 사용한다.
asgiref==3.7.2
Django==3.0.8
django-filter==23.5
django-cors-headers==3.11.0
django-environ==0.10.0
djangorestframework==3.14.0
djangorestframework-simplejwt==5.2.2
gunicorn==20.1.0
mysqlclient==2.1.1
PyJWT==2.7.0
pytz==2023.3
sqlparse==0.4.4
tzdata==2023.3
이번에 사용한 모듈.
django-filter==23.5가 django 버전 3.2 이상을 필요로 하는데 알아서 처리 하는듯..? 따로 error는 안뜨고 잘 된다.
수정할 때는 image나 volumes 를 꼭 삭제해주자!