Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set the encoding for the tables' char columns in django?

I have a project written in Django. All fields that are supposed to store some strings are supposed to be in UTF-8, however, when I run

manage.py syncdb

all respective columns are created with cp1252 character set (where did it get that -- I have no idea) and I have to manually update every column...

Is there a way to tell Django to create all those columns with UTF-8 encoding in the first place?

BTW, I use MySQL.

like image 294
Maxim Sloyko Avatar asked Jul 29 '09 07:07

Maxim Sloyko


1 Answers

Django does not specify charset and collation in CREATE TABLE statements. Everything is determined by database charset. Doing ALTER DATABASE ... CHARACTER SET utf8 COLLATE utf8_general_ci before running syncdb should help.

For connection, Django issues SET NAMES utf8 automatically, so you don't need to worry about default connection charset settings.

like image 110
drdaeman Avatar answered Oct 03 '22 08:10

drdaeman