代码之家  ›  专栏  ›  技术社区  ›  Eran Kampf

本地转储数据问题(在Django应用程序引擎补丁上)

  •  1
  • Eran Kampf  · 技术社区  · 15 年前

    我正在使用带有应用程序引擎补丁的django,并且在本地存储区运行manage.py dumpdata时遇到了这个wierd问题(当我使用--remote选项时可以正常工作)。

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

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

    它甚至与我的工作无关。就像在运行manage.py dumpdata时一样,它加载一个新的dev-appserver,该服务器从非默认存储区的未知位置读取数据。

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Eran Kampf    15 年前

    IT应用程序引擎补丁manage.py使用的数据存储路径与运行dev_appserver.py时使用的默认路径不同。

    默认值为:

    • %temp%\dev\appserver.datastore
    • %temp%\dev\appserver.datastore.history

    manage.py使用:

    • %温度% 数据存储
    • %温度% .数据存储.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
    
    推荐文章