2016-01-29 12 views
5

私は自分の初期データがあるseed_data.jsonの備品を持っています。Django:データを更新するためのloaddata

時々、私はこのフィクスチャに新しいデータを追加し、それをリロードしてデータを正しく更新します。

ただし、ここからデータを削除したいと考えています。

{"fields": {"name": "Field 0"},"model": "catalog.product","pk": 1}, 
{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 2}, 
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 3}, 
# ... 

になった:

{"fields": {"name": "Field 1"},"model": "catalog.product","pk": 1}, 
{"fields": {"name": "Field 2"},"model": "catalog.product","pk": 2}, 
# ... 

しかし、私は取得しています:

django.db.utils.IntegrityError: Problem installing fixture .....\seed_data.json

Could not load catalog.Product(pk=2): column name is not unique

を は、だから私は、例えば、私はそのような何かを持っていた、私の seed_data.jsonを修正しました

データを追加するときに問題はありませんが、一部を削除しようとすると、主キーとの競合が発生します。

私は何をしようとしていますか?

答えて

3

フィクスチャは、完全に新しいデータベースインスタンスの初期データのみです(テスト実行時)。既存のデータを変更するには、移行を使用します。

+0

実際にアプリケーションの初期データを変更するには、データベースを消去する必要がありますか? – Ellone

+0

はい、もちろんです。それが「イニシャル」と呼ばれる理由です。 –

+0

そうですが、アプリケーションを更新すると、初期データに若干の変更が加えられることがあります。また、データベースを消去すると、初期ではないデータも削除されます。 adminインターフェイスを使用することはできますが、レコード上にきれいなプライマリキーを保存したいと考えています – Ellone

関連する問題