PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Django bulk_create avec des lignes ignorées qui causent IntegrityError ?

C'est désormais possible sur Django 2.2

Django 2.2 ajoute un nouveau ignore_conflicts l'option bulk_create méthode, à partir de la documentation :

Sur les bases de données qui le prennent en charge (toutes sauf PostgreSQL <9.5 et Oracle), la définition du paramètre ignore_conflicts sur True indique à la base de données d'ignorer l'échec de l'insertion des lignes qui échouent aux contraintes telles que les valeurs uniques en double. L'activation de ce paramètre désactive la définition de la clé primaire sur chaque instance de modèle (si la base de données le prend normalement en charge).

Exemple :

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