Django Admin 개발시 발생하는 QuerySet.dates() 문제

프로그래밍 언어는 python을 이용하고 웹 프레임워크는 Django 를 사용하고, 데이타베이스로는 MySQL 을 사용중인데 admin 사이트 구현중에

date_hierarchy = 'created_at'

이 구문 때문에

Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed?

이런 에러가 발생한다.

해결을 위해서는 일단 pytz 를 설치해줘야 한다.

$ pip install pytz

그리고 우분투에 설치된 mysql 에 한하여 (docker 로 설치한 mysql 도 괜찮다, 테스트 해보니 osx 도 된다)

$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p  mysql

하고 데이타베이스를 재시작 하면 된다. docker 데이타베이스는 설정을 바꾸면 재시작이 안되니 조심해야 한다. 원격 데이타베이스에 관해서는 (Google App Engine 의 Cloud SQL 도 가능하다)

$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p  -h $REMOTE_SERVER mysql