Wordpress=コンテンツをMezzanineのblog_blogpostにインポートした後、mysql 5.5を使用するUbuntu 12.04マシンでこのエラーが発生します。
ValueError at /admin/blog/blogpost/
Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed?
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/blog/blogpost/
Django Version: 1.6.1
Exception Type: ValueError
Exception Value:
Database returned an invalid value in QuerySet.dates(). Are time zone definitions and pytz installed?
Exception Location: /home/me/.mezenv/local/lib/python2.7/site-packages/Django/db/models/sql/compiler.py in results_iter, line 1107
Python Executable: /home/me/.mezenv/bin/python
Python Version: 2.7.3
Python Path:
[u'/home/me',
'/home/me/sai',
'/home/me/.mezenv/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.Egg',
'/home/me/.mezenv/local/lib/python2.7/site-packages/pip-1.1-py2.7.Egg',
'/home/me/.mezenv/lib/python2.7',
'/home/me/.mezenv/lib/python2.7/plat-linux2',
'/home/me/.mezenv/lib/python2.7/lib-tk',
'/home/me/.mezenv/lib/python2.7/lib-old',
'/home/me/.mezenv/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/home/me/.mezenv/local/lib/python2.7/site-packages']
Server time: Sat, 25 Jan 2014 13:44:11 +0100
Error during template rendering
In template /home/me/.mezenv/local/lib/python2.7/site-packages/grappelli_safe/templates/admin/change_list.html, error at line 140
Local_settings.pyに追加しました
import pytz
from pytz import *
また、my.cnfでタイムゾーンを定義しました[mysqld]
default-time-zone = "+01:00"
しかし、私はまだエラーユニットを取得していますテンプレートの行を取得します:
タグは次のとおりです。
140 {%block date_hierarchy%} {%date_hierarchy cl%} {%endblock%}
それを解決するためにあなたの助けを感謝します。
エラーが発生したようです Djangoの1.6タイムゾーン機能の変更 。ドキュメントでは、このエラーについて具体的に言及しています( バグレポート 、 ドキュメントへのリンク )。
タイムゾーンテーブルをmysqlにロードする必要があります( http://dev.mysql.com/doc/refman/5.6/en/mysql-tzinfo-to-sql.html )。データベースサーバーで実行してみます。
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -D mysql -u root -p
次に、「テーブルのフラッシュ」または「クエリキャッシュのフラッシュ」を実行します。そうしないと、正しいタイムゾーンデータをロードしても、問題が消えない場合があります。
mysql -u root -p -e "flush tables;" mysql
@qrisにより更新
MacOSユーザーの場合、解決策を見つけました ここ (コメント):
mysql_tzinfo_to_sql /usr/share/zoneinfo | sed -e "s/Local time zone must be set--see zic manual page/local/" | mysql -u root mysql
MacOSでは次のようなエラーがあるためです。
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u roomysql
Warning: Unable to load '/usr/share/zoneinfo/+VERSION' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh87' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh88' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Asia/Riyadh89' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh87' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh88' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/Mideast/Riyadh89' as time zone. Skipping it.
ERROR 1406 (22001) at line 38981: Data too long for column 'Abbreviation' at row 1
私のために働いたもの:
1。 'mysql'テーブルにタイムゾーン定義を入力します
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
2。テーブルのフラッシュ
mysql -u root -p -e "flush tables;" mysql
。mysqlを再起動します
Sudo service mysql restart
Mavericksで同じ問題を抱えてここを通過する他の人には、Antonが言及したエラーが表示されていたので、取得し続けました。
ERROR 1406 (22001) at line 38981: Data too long for column 'Abbreviation' at row 1
だから私はmysql_tzinfo_to_sql tz_file tz_name
MySQL docs から、希望する特定のタイムゾーンをロードします。
mysql_tzinfo_to_sql /usr/share/zoneinfo/GMT GMT | mysql -u root -p mysql
mysql_tzinfo_to_sql /usr/share/zoneinfo/UTC UTC | mysql -u root -p mysql
そして今Djangoはエラーを返さないので私は幸せです:D
Windowsの場合、次の手順を実行します。
C:\ProgramData\MySQL\MySQL Server VERSION\data\mysql
C:\Program Files\MySQL\MySQL Server VERSION\data
default-time-zone = 'UTC'
per ここのヒント 。次に、サービスを再起動します。Django docs実際に この問題について話す :
「データベースとpytzのタイムゾーン定義はインストールされていますか?」というエラーが表示されます。pytzがインストールされているので、問題は私のデータベースだと思いますか?
MySQLを使用している場合、タイムゾーン定義のロード手順については、MySQLノートの タイムゾーン定義 セクションを参照してください。
そのリンクをたどると、次のアドバイスが得られます。
Djangoのタイムゾーンサポートを使用する予定の場合は、
mysql_tzinfo_to_sql
タイムゾーンテーブルをMySQLデータベースにロードします。これは、データベースごとではなく、MySQLサーバーに対して一度だけ実行する必要があります。
コマンドは次のとおりです。
mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql mysql
Mysqlのタイムゾーンを読み込むことで問題が解決しました。 Windowsを使用している場合は、次の指示に従ってください。
ステップ#1:ビルド済みのタイムゾーンテーブルのデータファイルを含むパッケージをダウンロードします。http://dev.mysql.com/downloads/timezones。 html
ステップ#2:ダウンロードしたZipファイルをデスクトップ上のフォルダーに解凍します。
ステップ#3:MySQLサーバーを停止します。
XamppとWampの場合、GUIを使用するか、タスクマネージャーからmysqlサービスを停止します。
ステップ#4:MySQLサーバーのデータディレクトリのmysqlサブディレクトリを開きます。
私にとってはC:\xampp\mysql\data\mysql
ステップ#5:ダウンロードしたバージョンでタイムゾーンデータファイルを上書きします。
解凍したフォルダーから15個すべてのデータファイルをコピーし、mysqlシステムデータベースのデータフォルダーに貼り付けます。これらの.frm、.MYD、および.MYIファイルをすべて上書きします。
ステップ#6:MySQLサーバーを再起動します。
そして、仕事は完了です:-)
ソース: http://www.geeksengine.com/article/populate-time-zone-data-for-mysql.html