Bonjour à tous, je rencontre un problème étrange avec l’un des forums que je maintiens.
Lors d’une mise à niveau, sur la page admin/upgrade ou dans le terminal, l’opération a échoué avec cette erreur :
--------------------------------------------------------------------------------
1 migration a échoué !
Échec de la migration par défaut
#<ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_screened_ip_addresses_on_ip_address"
DETAIL: Key (ip_address)=(10.0.0.0/8) already exists.
Heureusement, je n’ai pas cassé le forum grâce à la commande ./launcher restart app (./launcher destroy app / ./launcher start app m’a déjà sauvé une fois lorsque j’avais une page blanche après un redémarrage), donc il n’y a pas d’urgence, c’est pourquoi je cherche des conseils.
J’ai décidé d’inspecter la base de données. J’ai quelques références à l’IP 10.0.0.0/8 qui ressemblent à des logs, mais dans la table screened_ip_addresses, je ne vois aucun doublon.
--
-- Entrée TOC 6829 (classe 0 OID 382198)
-- Dépendances : 657
-- Données pour Name : screened_ip_addresses ; Type : TABLE DATA ; Schéma : public ; Propriétaire : -
--
COPY public.screened_ip_addresses (id, ip_address, action_type, match_count, last_match_at, created_at, updated_at) FROM stdin;
236 10.0.0.0/8 2 0 \N 2020-05-24 19:44:41.587257 2020-05-24 19:44:41.587257
237 192.168.0.0/16 2 0 \N 2020-05-24 19:44:47.150337 2020-05-24 19:44:47.150337
239 172.16.0.0/12 2 0 \N 2020-05-24 19:44:57.347656 2020-05-24 19:44:57.347656
240 fc00::/7 2 0 \N 2020-05-24 19:45:02.270948 2020-05-24 19:45:02.270948
261 154.71.107.147 1 0 \N 2020-06-05 13:15:17.718236 2020-06-07 00:27:57.204765
257 154.126.107.81 1 0 \N 2020-06-02 09:51:31.191431 2020-06-07 00:27:58.538628
259 197.1.186.242 1 0 \N 2020-06-05 08:39:52.218198 2020-06-07 00:27:58.985867
258 89.158.72.7 1 0 \N 2020-06-02 20:44:41.584317 2020-06-07 00:27:59.542337
260 196.179.229.13 1 0 \N 2020-06-05 08:39:52.227515 2020-06-07 00:28:00.288445
238 127.0.0.0/8 2 0 \N 2020-05-24 19:44:52.369958 2020-05-24 19:44:52.369958
L’administrateur du forum m’a dit qu’il avait nettoyé certaines IP sur la page /admin/logs/screened_ip_addresses et en avait ajouté d’autres. Mais je doute qu’il ait touché cette IP. L’étrange, c’est qu’il est indiqué que l’IP a été ajoutée il y a 14 jours (c’était la dernière fois que j’ai effectué une mise à niveau, probablement la mise à niveau de PostgreSQL), alors que le forum date de 2015. Sur d’autres forums, cela vérifie la date de création.
Donc, je suppose que la table est un peu désorganisée, mais cela ne semble pas vraiment être le cas.
Je ne veux pas trop jouer avec la chance, surtout parce que je ne suis pas très fort en SQL. Je cherche donc des conseils sur la procédure à suivre pour m’assurer de pouvoir effectuer la mise à niveau en toute sécurité ![]()
Devrais-je nettoyer la page /admin/logs/screened_ip_addresses, essayer de purger les entrées de cette table ou d’une autre ?
