Impossible d'insérer une valeur null dans un enregistrement PostgreSQL enterprise avec valeur par défaut current_timestamp et non null

Discourse higher 3.2.0 (v3.3.3,…).
J’utilise PostgreSQL 15.3 (EnterpriseDB Advanced Server 15.3.0) sur x86_64-pc-linux-gnu, compilé par gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-16), 64-bit.
Lorsque j’exécute rake db:migrate, je rencontre cette erreur :

PG::NotNullViolation : ERREUR : une valeur nulle dans la colonne « first_unread_at » de la relation « user_stats » viole la contrainte not-null (PG::NotNullViolation)
DÉTAIL : La ligne défaillante contient (130, 0, 0, 0, 0, 0, 0, 2025-02-25 03:27:48.934913, null, null, 0, 0, 0, null, 0, 0, 0, null, 0, null, null, null, 0, 0)

J’ai investigué et découvert que la raison est que l’application essaie d’insérer une valeur nulle dans un champ qui n’est pas nul avec un current_timestamp par défaut.
Ma solution :

BEGIN;
ALTER TABLE user_stats 
  ALTER COLUMN first_unread_at SET NOT NULL,
  ALTER COLUMN first_unread_at SET DEFAULT NOW();
COMMIT;

BEGIN;
ALTER TABLE user_stats 
  ALTER COLUMN first_unread_pm_at SET NOT NULL,
  ALTER COLUMN first_unread_pm_at SET DEFAULT NOW();
COMMIT;

BEGIN;
ALTER TABLE group_users 
  ALTER COLUMN first_unread_pm_at SET NOT NULL,
  ALTER COLUMN first_unread_pm_at SET DEFAULT NOW();
COMMIT;

Mais il y a beaucoup d’autres champs qui ne peuvent pas être insérés, je n’ai pas pu tous les trouver et les corriger en utilisant cette méthode.

Je suis confus, nous avons défini le segfault ici :