W Postgresql NULL nie jest równy żadnemu innemu NULL . Dlatego tworzone wiersze nie są takie same (z perspektywy Postgresa).
Aktualizacja
Możesz sobie z tym poradzić na kilka sposobów:
- Zabroń
Nullwartość klucza obcego i użyj wartości domyślnej - Zastąp
savemetoda Twojego modelu, aby sprawdzić, czy taki wiersz nie istnieje - Zmień standard SQL :)