rails suppriment les anciens modèles avec les migrations
J'ai un tas de rails de modèles que je suis ré-écriture dans un modèle unique pour simplifier mon code et éviter les tables.
Je me demandais quelle est la meilleure façon de supprimer un modèle de classe et de son tableau. Je veux dernières migrations de toujours réussir, mais je ne veux pas laisser le vide des modèles qui traînent. Dois-je supprimer manuellement les anciennes migrations qui font référence à ces modèles, puis supprimez manuellement les fichiers de classe?
Quelqu'un aurait-il des conseils pour la meilleure façon de le faire?
source d'informationauteur brad
Vous devez vous connecter pour publier un commentaire.
Ce sujet de faire
ruby script/destroy model
? Cela devrait prendre soin du modèle et de la migration.Si vous souhaitez vous débarrasser complètement de modèle et de sa table ce faire:
Une solution tout en un.
Exécutez les commandes suivantes:
L'ancien va générer un nouveau fichier de migration qui devrait ressembler à ceci:
Maintenant exécuter
db:migrate
et vous avez terminé.La question est un peu obsolète maintenant, mais j'ai juste fait:
L'option-p affiche "faire semblant" de sortie, ce qui est bon pour voir ce qui va se passer. Supprimer l'option '-p', et les résultats seront correspondre à la sortie. Cette nettoyé l'ensemble de la collection de M-V-C fichiers + tests + fichiers js + l'origine de la migration, pas de problème.
Je suppose que si vous êtes celui qui aime les modifier à la main les migrations et comprennent plusieurs étapes dans chacun des cas, la perte de l'original de la migration pourrait se briser db:le programme d'installation, afin que l'acheteur prenne garde. En gardant une action == un fichier de migration devraient éviter ce potentiel snafu.
Vous pouvez prendre un coup d'oeil à celle de la guide rails.
Mais je suggère, si c'est possible, vous devez supprimer les modèles et toutes les références à des modèles. Ce sera probablement gagner du temps plus tard que vous n'avez pas besoin de maintenir le code mort dans la base de code.
Selon le stade de développement ou de production, vous êtes, vous pouvez migrer les modèles de sortir en toute sécurité à l'aide d'une migration de supprimer/sauvegarde de données ou de ce pas. Alors que bobbywilson0 suggéré, à l'aide de
ou si vous rspec rien
Cela permettra d'éliminer toute spec tests.
Ou vous pouvez toujours les faire glisser vers le dossier corbeille.
Si vous préférez avoir un manuel de réponse:
D'abord exécuter la commande suivante pour identifier les migrations que vous souhaitez supprimer:
Hésitez pas à
grep -i
trop si vous êtes confiant dans votre schéma de nommage.Prendre note de toutes les "ajouter x pour le nom de modèle" et des altérations similaires à votre Modèle. Ceux-ci peuvent être retirés à l'aide de:
Le faire pour tous les migrations en plus de la création initiale de la migration. La commande suivante va prendre soin de la création initiale de la migration et les fichiers associés avec le modèle: