2012-04-17 59 views
0

由于时区问题,我最近将项目的数据库从sqlite转换为postgres。转换在我的本地开发环境中工作正常。然而,在我的生产环境上webfaction,当我尝试使用loaddata从我的JSON文件填充数据库,我收到以下错误信息:django loaddata问题postgres中的新日期时间字段

Problem installing fixture 'smartcarpools.json': Traceback (most recent call last): 
    File "/home/mb52089/webapps/smartcarpools_prod/lib/python2.7/django/core/management/commands/loaddata.py", line 169, in handle 
    for obj in objects: 
    File "/home/mb52089/webapps/smartcarpools_prod/lib/python2.7/django/core/serializers/json.py", line 35, in Deserializer 
    for obj in PythonDeserializer(simplejson.load(stream), **options): 
    File "/home/mb52089/webapps/smartcarpools_prod/lib/python2.7/django/core/serializers/python.py", line 128, in Deserializer 
    data[field.name] = field.to_python(field_value) 
    File "/home/mb52089/webapps/smartcarpools_prod/lib/python2.7/django/db/models/fields/__init__.py", line 710, in to_python 
    raise exceptions.ValidationError(self.error_messages['invalid']) 
ValidationError: [u'Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format.'] 

我注意到,webfaction使用的Postgres 8.3,而我的本地开发环境使用9.1。

任何帮助初学者非常感谢。谢谢!

回答

1

我在你的错误中没有看到任何提及PostgreSQL的东西。它抱怨没有有效的日期/时间。你有没有检查过,以确保smarcarpools.json的所有日期为“YYYY-MM-DD HH:MM”格式?

哦 - 和PostgreSQL 8.3被释放回在2008年你会想:

  1. 看看webfaction(托管公司?)提供一些更多的电流
  2. 阅读release notes为8.4版本,9.0 ,9.1,所以你有一些不同的想法。请记住,不能简单地转储9.1数据库并将其加载到8.3,尽管您应该可以转向其他方向。

如果您的主机上无法获得最新版本,请为您的平台获取8.3的副本 - 如果您使用的是unix系统,则从源代码编译非常简单。

+0

我在webfaction上迁移到了一个新的服务器上,其中第9.1页。仍然是关于日期时间的相同错误消息。奇怪的是,我可以用我的开发板设置加载数据,没有问题。相同的dumpdata json。我很难过 – mb52089 2012-04-18 14:24:40

+0

这不是PostgreSQL错误。尝试打印出“坏”值 - 问题出在数据或Python的测试中。 PG9.1的好消息 - 在过去几个版本中有很多改进。 – 2012-04-19 10:34:11

+0

我手动编辑了违规日期数据,现在就可以使用。仍然困惑为什么我不必为我的PG9.1本地安装做这件事,但必须做它的网页制作,但哦。 – mb52089 2012-04-19 14:37:19