2009-10-07 6 views
1

J'ai une application rails dans laquelle j'ai implémenté certaines fonctionnalités. Maintenant, je veux supprimer cette fonctionnalité sans casser le code. Puisque l'application est en cours d'exécution sur le serveur de production, cela est un peu critique. Comment puis-je faire ce qui suit.Comment supprimer certaines fonctionnalités d'une application Rails

  • Supprimer toutes les tables de la base de données concernées par cette fonctionnalité?
  • supprimer les contrôleurs, les modèles et afficher les fichiers?
  • corriger les autres contrôleurs et les vues qui sont liés à cette fonctionnalité?

La première peut être obtenue en générant migrations qui produisent résultat inverse de celui qui tentent de créer les tables associées à cette fonctionnalité. Comment devrais-je procéder à la suppression du code? J'utilise git comme mon gestionnaire de code source.

Répondre

1

Créer des migrations pour éliminer les bases de données/champs

maintenant inutiles Retirez les contrôleurs, les modèles et les fichiers de vue

quoi que ce soit correct qui est maintenant cassé (je l'espère vous des tests d'écriture)

Push votre code à votre serveur de transfert et vérifiez que tout fonctionne correctement

Lorsque tout va bien, passez votre code à la production. Et tu devrais rouler.

+0

Les tests m'ont vraiment aidé à accomplir cela. – Waseem

0

Utilisez git pour créer une branche séparée (je l'appellerai "less"), et effectuez tous les changements sur cette branche. De cette façon, votre site continue de fonctionner. Vous devriez avoir une autre copie de votre application s'exécutant quelque part (c'est-à-dire, sur votre ordinateur local) qui s'exécute de la branche "moins".

Il est essentiel que vous ayez des tests afin de vous assurer que la suppression des fonctions ne casse pas involontairement quelque chose d'autre. Exécutez vos tests sur le serveur de test (en exécutant la branche "less"). Une fois que votre serveur de test fonctionne correctement et que vos tests fonctionnent correctement, fusionnez votre branche "less" dans votre branche "master" (celle de votre serveur de production). Apportez les modifications à votre serveur de production, redémarrez, et vous êtes prêt à partir.

Questions connexes