Ruby on Rails : Gestion de l'Intégrité référentielle dans les migrations
Par Christophe, samedi 18 novembre 2006 à 05:27 :: Développement :: #108 :: rss
Rails (ActiveRecord plus précisement) intègre un "système de versionning de structure de base de donnée" (expression trouvée à l'instant[1]), communément appelé Migrations, dont tout le monde chante les louanges, ce qui est assez justifié, bien que j'ai été moi-même assez septique sur son utilité/charme. Lisez les pages suivantes pour en comprendre le principe et le fonctionnement :
http://wiki.rubyonrails.com/rails/pages/UsingMigrations
http://wiki.rubyonrails.com/rails/pages/UnderstandingMigrations
http://rubyonrails.com/rails/classes/ActiveRecord/Migration.html
Malheureusement, les contraintes ne sont pas encore supportés avec cette syntaxe, alors vous devez les ajouter à la main, en SQL pur (execute "alter table users add constraint fk_users_post_id foreign key (post_id) references posts(id)")
Si vous avez suivi le principe des migrations, vous comprendrez que l'on peut en faire une seulement pour rajouter un champ avec une foreign_key, ce qui implique qu'elle soit droppée au self.down. Ça fait beaucoup.
Il est donc recommandé d'utiliser un helper pour gérer tout ça :
Séb Box : http://seb.box.re/articles/2006/07/29/foreign-key-and-rails-migration
Notes
[1] le fait qu'elle existait ou non avant m'importe peu

Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.