1

重複の可能性:
GoogleAppEngineで「自動インクリメント」を実装する方法

AppEngineにPythonアプリがあります。高レプリケーションデータストアを使用しています。

これが私の問題です:

親なしで保存されるエンティティ(簡単にするためにPersonと呼びます)があります。これはAppEngineの用語ではルートエンティティです。

データストアによって割り当てられた数値IDが必要なため、エンティティを保存する前にkey_nameを設定しません。いくつかのコード:

p = Person(name='Juan Roman Riquelme')
p.put()
p.key().id() # the numeric ID

問題は、IDが連続していないことです。アプリを更新するたびに(appcfg.py update。)、IDは次の数千で始まります。つまり、アプリを初めて更新するときは、1、2、3などのIDを更新します。次回は1001、1002、1003など。3回目は2001、2002など。

どうしたの?それらを連続させるにはどうすればよいですか?

ありがとう!

4

1 に答える 1

3

なぜそれらを連続させる必要があるのですか?

App Engine データストアは、連続する ID を割り当てません。

連続した ID が必要な場合は、自分で ID を割り当てる必要があります。アプリ エンジンが既存の ID を自動的に割り当てないように、allocate_id_range (http://code.google.com/appengine/docs/python/datastore/functions.html) を使用することを忘れないでください。

于 2011-06-23T16:35:35.710 に答える