Une meilleure solution est de créer une migration :
rails generate migration add_<column>_to_<type>
Cette commande va ajouter un fichier dans /db/migrate. Il va contenir deux méthodes : up et down.
Up contient le code pour ajouter cette colonne :
add_column : <table>, :<column>, :<type>
Down contient le code pour faire un rollback sur cette migration précise :
remove_column : <table>, :<column>
Ainsi une trace des modifications de la base de données est sauvegardée. Cela a beaucoup d'avantages. Le principal étant pour le travail en équipe ; si une colonne est ajoutée sans fichier migrate, alors un autre développeur qui va récupérer l'application ne saura pas quoi faire. Avec cette solution, un simple db:migrate va mettre à jour sa base locale de développement.
Remarque : dans les deux cas, les vues ne sont pas mises à jour. Par exemple, un formulaire de création construit avec scaffolding ne va pas ajouter une ligne pour le nouveau champ en base, idem pour les tableaux. Il n'y a aucun impacts sur le controller.
Aucun commentaire:
Enregistrer un commentaire