1

我正在将 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,该服务器从某个不是默认存储的未知位置读取数据。

知道这个转储数据来自哪里吗?

4

1 回答 1

1

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

默认值为:

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

manage.py 使用:

  • %TEMP%\django_。数据存储
  • %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
于 2009-10-20T19:32:50.760 回答