2

J'ai créé une migration de base de données Rails pour ajouter une nouvelle colonne à une table dans ma base de données, mais après avoir remarqué que cela prenait beaucoup plus de temps que prévu (15 minutes plus) processus exécutant la migration. Puis j'ai réalisé que l'exécution n'était pas hors de l'ordinaire à cause de la quantité de données dans la table, donc j'ai essayé de recommencer. Maintenant, je reçois l'erreur:Erreur de nom de colonne en double après l'annulation

Mysql::Error: Duplicate column name 'new_column': ALTER TABLE `table_name` ADD `new_column` varchar(255) 

Cependant, quand je vais manuellement dans MySQL, desc table_name montre que la colonne n'existe pas, et d'essayer de le déposer manuellement (alter table table_name drop new_column) me dit:

ERROR 1091 (42000): Can't DROP 'new_column'; check that column/key exists 

Il semble que l'abandon du processus d'ajout initial a provoqué l'apparition d'un état incohérent. Que dois-je faire pour résoudre ce problème?

Modifier: J'ai essayé d'ajouter manuellement (copier exactement le DDL de l'erreur ci-dessus), puis laisser tomber la colonne à l'invite MySQL, et les deux fonctionnait bien, mais rake db:migrate continue de me donner l'erreur ci-dessus.

Répondre

0

Il semble que je courais accidentellement les commandes manuelles MySQL contre la mauvaise base de données (I ne passait pas à la version "développement" de la base de données). En utilisant la base de données correcte, j'ai été en mesure de supprimer manuellement la colonne incriminée.

0

vous pouvez essayer ce aller à ce chemin

/var/lib/mysql 

et prendre une sauvegarde de votre base de données (comme un dossier)

aller ensuite dans le dossier de base de données et essayez de supprimer le fichier de table

cela peut-être fonctionner

Questions connexes