在MacOS上安装了Postgres.app,并用Django、dj-database-url和psycopg2初始化了一个python virtualenv之后,我反复得到:
/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 194, in _cursor
self.ops.set_time_zone_sql(), [tz])
psycopg2.DataError: invalid value for parameter "TimeZone": "UTC"在为我的manage.py应用程序执行"python Django syncdb“时。
你知道原因是什么吗?
发布于 2013-01-24 15:11:45
当我检查base.py文件的第194行时,我注意到了以下代码:
tz = 'UTC' if settings.USE_TZ else settings_dict.get('TIME_ZONE')通过将我的settings.py文件中的USE_TZ参数更改为'False‘,我得到了以下错误:
psycopg2.DataError: invalid value for parameter "TimeZone": "Australia/Perth"“澳大利亚/珀斯”是我的settings.py文件中的时区设置,所以至少它现在可以访问我的时区了。
再次查看psycopg2 base.py文件,我注意到以下代码:
if tz:
try:
get_parameter_status = self.connection.get_parameter_status
except AttributeError:
# psycopg2 < 2.0.12 doesn't have get_parameter_status
conn_tz = None
else:
conn_tz = get_parameter_status('TimeZone')
if conn_tz != tz:将一个调试的'print conn_tz‘输入到base.py中,结果显示conn_tz (可能是postgres数据库的时区设置)是’澳大利亚/西部‘。
将我的settings.py TIME_ZONE更改为“澳大利亚/西部”允许同步数据库正常运行。
https://stackoverflow.com/questions/14495773
复制相似问题