本地dumpdata的问题(在django app-engine-patch上)

时间:2009-10-20 15:33:13

标签: django google-app-engine app-engine-patch

我正在使用django和app-engine-patch,我遇到了从本地商店运行manage.py dumpdata这个奇怪的问题(当我使用--remote选项时工作正常)

我正在运行一个本地开发服务器,上面有一些测试数据。我可以在管理站点上看到该数据。 但是运行manage.py dumpdata我得到的是:

[{"pk": "agZmaWRkbWVyEQsSC2RqYW5nb19zaXRlGAEM", "model": "sites.site", "fields": {"domain": "example.com", "name": "example.com"}}]

它甚至与我正在做的事情无关。好像在运行manage.py dumpdata时,它会加载一个新的dev_appserver,它从某个不是默认存储的未知位置读取数据。

知道这个dumpdata来自哪里?

1 个答案:

答案 0 :(得分:1)

app-engine-patch manage.py使用与运行dev_appserver.py时使用的defualt路径不同的数据存储路径的问题

默认为:

  • %TEMP%\ dev_appserver.datastore
  • %TEMP%\ dev_appserver.datastore.history

manage.py使用:

  • %TEMP%\ django_ .datastore
  • %TEMP%\ django_ .datastore.history

这可以通过项目设置进行自定义。 充满这种差异的功能在\ django \ db \ backends \ appengine \ base.py:

def get_datastore_paths(settings_dict):
  """Returns a tuple with the path to the datastore and history file.

  The datastore is stored in the same location as dev_appserver uses by
  default, but the name is altered to be unique to this project so multiple
  Django projects can be developed on the same machine in parallel.

  Returns:
    (datastore_path, history_path)
  """
  from google.appengine.tools import dev_appserver_main
  options = settings_dict['DATABASE_OPTIONS']
  datastore_path = options.get('datastore_path',
      dev_appserver_main.DEFAULT_ARGS['datastore_path'].replace(
          "dev_appserver", "django_%s" % appid))
  history_path = options.get('history_path',
      dev_appserver_main.DEFAULT_ARGS['history_path'].replace(
          "dev_appserver", "django_%s" % appid))
  return datastore_path, history_path