Django setting mysql
collation에 대해서는 각 모델의 프로퍼티를 설정할 때 마다 지정해줘야하는 것같다..
그러므로 데이터베이스를 처음 만들 때 지정해주자.
CREATE DATABASE my_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
그렇지 않으면 migration파일에서 RunSQL
을 사용해서 collation을 바꿔주는 방법도 있다.
처음부터 database를 만들 때 위의 커맨드로 collation을 지정해줬기 때문에 settings.py에는 아래와 같이 설정했다.
django-envrion 패키지를 사용해서 .env
file에 설정을 별도로 지정해줬다.
# settings.py
DATABASES = {
"default": env.db(
"DATABASE_URL",
engine="django.db.backends.mysql",
),
"TEST": {"NAME": "private_test_db", "CHARSET": "utf8mb4", "COLLATION": "utf8mb4_general_ci"},
}
# Set the character set
DATABASES["default"]["OPTIONS"] = {"init_command": "SET sql_mode='STRICT_TRANS_TABLES'", "charset": env("charset")}
# .env file
DEBUG=True
SECRET_KEY=my_secret_key # secret key를 설정해주자.
ALLOWED_HOSTS=localhost # allowed host를 설정해주자.
# database settings
DATABASE_URL=mysql://username:password@host/name # name은 database의 name이다.
charset=utf8mb4
Reference
Create a MySQL database with charset UTF-8
'Django' 카테고리의 다른 글
django fixture dumpdata (0) | 2023.02.20 |
---|---|
Django CharField editable (0) | 2023.02.09 |
Django-environ 패키지를 활용한 Django 환경변수 설정 (0) | 2023.02.01 |
django allowed hosts invaild host header elb alb (0) | 2022.11.05 |