1

app-engine-patchでdjangoを使用していますが、ローカルストアから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がどこから来たのか考えていますか?

4

1 に答える 1

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

これは、プロジェクト設定を介してカスタマイズできます。この違いを担当する関数は、in \ 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 に答える