pythonanywhere로 배포도 다 끝내고 도메인도 구매해서 변경했겠다. 이제 진짜로 서비스 시작해보려고 하는데 문제가 하나 생겼다.
그건 바로..

content에 이모지를 넣으면 게시글이 제대로 저장이 되지 않는다..
그래서 찾아보니 mysql은 utf-8 인코딩 방식을 사용하지만 3byte 이내의 문자만 저장할 수 있어서 4byte 크기를 가진 이모지는 저장이 되지 않는 것이었다.
그럼 이를 어떻게 해결할 것인가
방법은 의외로 간단하다
mysql 콘솔에
ALTER TABLE 테이블명 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
명령어를 입력하여 테이블에 있는 문자열의 인코딩 방식을 utf8mb4로 변경하고
아래와 같이 DATABASES OPTIONS에 utf8mb4를 입력해주면
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '이름$default',
'USER': '이름',
'PASSWORD': '패스워드',
'HOST': '이름.mysql.pythonanywhere-services.com',
'OPTIONS': {
'charset': 'utf8mb4'
}
}
}

아주 잘 작동한다 :)
'기타' 카테고리의 다른 글
| [Django/Devroup] Mysql과 django의 unique 속성 호환 문제 (0) | 2023.12.18 |
|---|---|
| [Django/Devroup] django-allauth 로그인/로그아웃할 때 나오는 alert창 없애는 법 (2) | 2023.12.17 |
| [Django/Devroup] 검색된 객체들을 정렬시키는 법 (feat. GET방식으로 전달된 데이터를 보존하는 법) (2) | 2023.12.03 |
| [Django/Devroup] 군대 싸지방에서 프로젝트 개발 시작! (2) | 2023.10.02 |
| [Azure/gabia/APOD] APOD 도메인 등록 (0) | 2023.06.17 |