Sur ma machine locale, je souhaite supprimer un tag dans la base de données de sauvegarde avant la restauration. Comment puis-je le faire via la console ?
Est-il possible de supprimer un tag d’une base de données qui n’a pas encore été démarrée ? Par exemple, depuis une sauvegarde qui ne peut pas être restaurée (à cause du problème de tag en double) ?
Si je devais le faire moi-même, je commencerais par retourner sur le site où le fichier de sauvegarde a été créé, supprimer le tag via la console Rails, puis créer un nouveau fichier de sauvegarde.
Si cela n’est pas possible, ou si cela ne résout pas le problème des tags en double, vous pouvez supprimer la ligne de la table en ouvrant un terminal psql sur celle-ci. Quelque chose comme :
DELETE FROM tags WHERE name = <votre_nom_de_tag>;
Mon inquiétude à ce sujet est que cela ne supprimera pas les utilisations du tag supprimé de la base de données du site de la même manière que lorsque vous utilisez la commande Rails destroy!. Il serait peut-être judicieux de tester cela sur une copie du fichier de sauvegarde pour vous assurer que cela ne casse rien.
Il pourrait aussi être judicieux d’exécuter une instruction SELECT avant de supprimer le tag. Cela pourrait révéler la cause du problème :