我使用Django 1.4,在PostgreSQL作爲數據庫,和我有以下型號:Django的一個bulk_create後1.4主鍵衝突
class Keyword(models.Model):
name = models.CharField(max_length=100)
我用數據填充Django的數據庫,從另一個數據庫中,使用bulk_create, 類似於一些代碼:
Keyword.objects.bulk_create([Keyword(id=id, name=name) for id,name in [(1,"k1"),(2,"k2"),(3,"k3")] ])
遺留數據具有主鍵已經,並保持這種方式是很重要的。
的問題是,當我嘗試創建新的對象,Django會使用主鍵從1開始,併發生衝突異常被拋出:
k = Keyword(name="k4")
k.save()
給我的錯誤
IntegrityError: duplicate key value violates unique constraint "sinbiota_keyword_pkey"
DETAIL: Key (id)=(1) already exists.
有沒有辦法強制Django以另一個值開始主鍵增量,或者有任何方法來解決這個衝突?
但我認爲這意味着我將不得不創建自己的主鍵邏輯,這實際上是我不想做的事情。我實際上在這裏找到了我的解決方案,很快就會發布。 –