Je viens de déplacer un forum de name.com vers forum.name.com, mais l’opération a échoué :
Erreur : ERREUR : la valeur de clé dupliquée viole la contrainte d’unicité “unique_post_links”
DÉTAIL : La clé (topic_id, post_id, url)=(246, 813, http://forum.name.com) existe déjà.
La réaffectation n’a été appliquée que partiellement en raison de l’erreur ci-dessus. Veuillez relancer le script.
J’ai donc relancé le script (il a échoué à nouveau), puis exécuté rake posts:rebake et vérifié le forum. J’ai constaté la présence de certaines instances de forum.forum.name.com. (J’ai donc exécuté discourse remap forum.forum.name.com forum.name.com suivi de rake posts:rebake pour tenter de corriger le problème, avec un certain succès ; j’ai dû modifier manuellement certaines instances).
J’ai quelques questions :
discourse remap name.com forum.name.com s’applique-t-il uniquement au contenu des messages ? Sinon, dois-je simplement examiner les Paramètres du site pour détecter d’éventuels problèmes ?
Cette commande doit-elle être exécutée dans le cadre d’une transaction ? (Si oui, cela ne semble pas avoir été le cas lors de mon échec).
J’ai vérifié tous les paramètres du site et ils sont corrects (tout comme les thèmes), et je suppose que tout ce qui figure ci-dessus a été effectué. Voyez-vous quelque chose qui aurait dû être fait mais qui ne l’a pas été ? Pensez-vous qu’il soit sûr de continuer ainsi ou selon vous faut-il tout refaire depuis le début ?
Avez-vous également des idées sur la raison pour laquelle les erreurs « duplicate key value violates unique constraint » deviennent plus fréquentes sur Discourse ? J’ai remarqué quelques sujets à ce sujet et je pense que c’est la troisième fois que je rencontre un tel problème moi-même.
Pas d’après la sortie, non. Nous ne produisons que des tableaux contenant des modifications. Impossible de savoir si un tableau n’apparaît pas dans la liste à cause de l’erreur, ou simplement parce qu’il n’y avait aucune instance de name.com dans le tableau (non listé).
Tu as des idées sur ce que signifient ces chiffres ? Le nombre de modifications ?
Quelle est la marche à suivre recommandée maintenant ? Corriger l’erreur de contrainte d’unicité, puis effectuer un aller-retour (passer de forum.name.com à name.com, puis revenir), ou faire autre chose ?
Édition : c’est fait
Je suis entré dans l’application et dans la console Rails, j’ai supprimé le TopicLink concerné, puis je suis passé de forum.name.com à name.com, puis de nouveau à forum.name.com.