PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Django bulk_create com linhas ignoradas que causam IntegrityError?

Isso agora é possível no Django 2.2


Django 2.2 adiciona um novo ignore_conflicts opção para o bulk_create método, da documentação:

Em bancos de dados que o suportam (todos, exceto PostgreSQL <9.5 e Oracle), definir o parâmetro ignore_conflicts como True informa ao banco de dados para ignorar a falha ao inserir quaisquer linhas que falhem em restrições, como valores únicos duplicados. A ativação desse parâmetro desativa a configuração da chave primária em cada instância do modelo (se o banco de dados normalmente suportar isso).

Exemplo:
Entry.objects.bulk_create([
    Entry(headline='This is a test'),
    Entry(headline='This is only a test'),
], ignore_conflicts=True)