Les migrations
Publié par le 30 octobre 2011
Les migrations constituent un outil pratique pour modifier votre base de données tout en restant organisé. Vous pourriez écrire des morceaux de code SQL pour réaliser la même chose, mais vous auriez alors à distribuer ce code à d’autres développeurs, et leur demander de l’exécuter à leur tour. Vous auriez également à vous rappeler quels changements doivent être exécutés en production lors du prochain déploiement.
Active Record garde la trace des migrations qui ont déjà été appliquées, vous avez donc simplement à modifier votre source puis à exécuter la commande rake db:migrate. Active Record déterminera alors quelles sont les migrations à appliquer, puis mettra le fichier db/schema.rb à jour pour qu’il corresponde à la nouvelle structure de votre base de données.
Les migrations vous permettent également d’exprimer ces modifications en Ruby, ce qui a l’avantage d’être indépendant de la base de données (tout comme la majorité des fonctionnalités d’Active Record). Vous n’avez par exemple pas à vous préoccuper de la syntaxe exacte de CREATE TABLE ou des variations de SELECT * (bien que vous ayez la possibilité de revenir à du SQL pur si vous souhaitez utiliser des fonctionalités spécifiques à une base de données). Vous pourriez par exemple utiliser SQLite3 en développement et MySQL en production.
Vous apprendez dans ce guide plusieurs choses à propos des migrations :
- Comment générer une migration
- Quelles méthodes sont fournies par Active Record pour manipuler la base de données
- Quelles sont les tâches Rake disponibles pour manipuler les migrations
- Quel est le lien entre les migrations et schema.rb