2

MS-AccessからGoogle App Engineに(django-nonrel経由で)変換していたdjangoプロジェクトの一部のレガシーデータを一括読み込みしようとすると、データを挿入しようとするとレンガの壁に当たったと思います0(ゼロ)の値を持つ主キー。私のデータの多くはプライマリキーがありません。プライマリキーがゼロの行は特殊なものとして扱われ、多くの外部キーによって参照されます。django-nonrel on googleアプリケーションエンジン:PrimaryKeyフィールドの値は0ですか?

それを挿入しようとしている時にエラー:

File "/Users/myuser/my_app/django/core/management/commands/loaddata.py", line 174, in handle 
    obj.save(using=using) 
File "/Users/myuser/my_app/django/core/serializers/base.py", line 165, in save 
    models.Model.save_base(self.object, using=using, raw=True) 
File "/Users/myuser/my_app/django/db/models/base.py", line 573, in save_base 
    result = manager._insert(values, return_id=update_pk, using=using) 
File "/Users/myuser/my_app/django/db/models/manager.py", line 195, in _insert 
    return insert_query(self.model, values, **kwargs) 
File "/Users/myuser/my_app/django/db/models/query.py", line 1438, in insert_query 
    return query.get_compiler(using=using).execute_sql(return_id) 
File "/Users/myuser/my_app/dbindexer/compiler.py", line 38, in execute_sql 
    return super(SQLInsertCompiler, self).execute_sql(return_id=return_id) 
File "/Users/myuser/my_app/djangotoolbox/db/basecompiler.py", line 370, in execute_sql 
    return self.insert(data, return_id=return_id) 
File "/Users/myuser/my_app/djangoappengine/db/compiler.py", line 59, in _func 
    return func(*args, **kwargs) 
File "/Users/myuser/my_app/djangoappengine/db/compiler.py", line 470, in insert 
    entity = Entity(self.query.get_meta().db_table, **kwds) 
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore.py", line 784, in __init__ 
    datastore_types.ValidateInteger(id, 'id') 
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore_types.py", line 195, in ValidateInteger 
    raise exception('%s must not be 0 (zero)' % name) 
DatabaseError: id must not be 0 (zero) 

このダンプから、あなたはエラーが私の質問があるというジャンゴ-nonrelまたはdjangoappengineコードよりも、GoogleAppEngineのpython APIコード自体に提起されていることを見ることができ、されています。 Google App Engineの整数の主キーフィールドにゼロの値を許可するように設定できますか?

ありがとう!

答えて

0

私は、mysqlからGoogleアプリケーションエンジンに移行する同様の問題がありました。解決策は、0を使用できず、ポジティブが予約されている場合は、整数値を負に設定することです。私は主キーをインポートからネガティブに設定し、インポートとプレーン・ガー・データをさまざまな方法で扱うことでそこから作業することができます。

0

エラーはかなり明白です:いいえ、プライマリ(整数)キーを0に設定することはできません。

関連する問題