我正在使用 Django 1.4,以 postgresql 作为数据库,并且我有以下模型:
class Keyword(models.Model):
name = models.CharField(max_length=100)
我正在使用 bulk_create 使用来自另一个数据库的数据填充 django 数据库,其中一些代码类似于:
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 以另一个值开始主键增量,或者有什么方法可以解决这个冲突?