首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django 1.4 syncdb +syncdb失败,出现时区错误

Django 1.4 syncdb +syncdb失败,出现时区错误
EN

Stack Overflow用户
提问于 2013-01-24 15:11:45
回答 1查看 1.3K关注 0票数 2

在MacOS上安装了Postgres.app,并用Django、dj-database-url和psycopg2初始化了一个python virtualenv之后,我反复得到:

代码语言:javascript
复制
/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“时。

你知道原因是什么吗?

EN

回答 1

Stack Overflow用户

发布于 2013-01-24 15:11:45

当我检查base.py文件的第194行时,我注意到了以下代码:

代码语言:javascript
复制
tz = 'UTC' if settings.USE_TZ else settings_dict.get('TIME_ZONE')

通过将我的settings.py文件中的USE_TZ参数更改为'False‘,我得到了以下错误:

代码语言:javascript
复制
psycopg2.DataError: invalid value for parameter "TimeZone": "Australia/Perth"

“澳大利亚/珀斯”是我的settings.py文件中的时区设置,所以至少它现在可以访问我的时区了。

再次查看psycopg2 base.py文件,我注意到以下代码:

代码语言:javascript
复制
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更改为“澳大利亚/西部”允许同步数据库正常运行。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14495773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档