Merci d’avoir exécuté ces requêtes @Don - vous avez confirmé la cause première
Vos résultats montrent exactement ce que nous soupçonnions
Vous avez un schéma backup avec une copie de user_options
Cette table a toujours la valeur par défaut précédente (column_default = false)
La ligne backup est apparue avantpublic dans les résultats de la requête
Lorsque la migration a supprimé la valeur par défaut sur public.user_options, elle n’a pas touché backup.user_options. Ensuite, mark_readonly a interrogé information_schema.columns sans filtrer par schéma, a obtenu la ligne backup en premier (qui avait toujours la valeur par défaut) et a échoué
La correction consiste simplement à ajouter table_schema = 'public' à la requête afin qu’elle ne vérifie que le schéma sur lequel les migrations opèrent réellement.