Si vous avez besoin ou souhaitez des fonctionnalités spécifiques à la base de données qu'ActiveRecord ne comprend pas, vous devez passer à db/structure.sql pour garder une trace de votre schéma. db/structure.sql est à peu près un vidage brut de votre schéma créé à l'aide des outils natifs de la base de données. Il contiendra donc des déclencheurs, des contraintes CHECK, des index sur les résultats de fonction et tout le reste.
Le changement est facile :
- Mettre à jour votre
config/application.rbpour contenirconfig.active_record.schema_format = :sql. - Faire un
rake db:structure:dumppour obtenir undb/structure.sqlinitial . - Supprimez
db/schema.rbà partir de votre arborescence de répertoires et de votre contrôle de révision. - Ajouter
db/structure.sqlau contrôle des révisions. - Ajustez vos habitudes de rake :
- Utilisez
db:structure:dumpau lieu dedb:schema:dump - Utilisez
db:structure:loadau lieu dedb:schema:load
- Utilisez
Tout le reste devrait fonctionner comme d'habitude (en supposant, bien sûr, que vous soyez sain d'esprit et que vous utilisiez PostgreSQL pour le développement, les tests et la production).
Une fois cette modification effectuée, vos déclencheurs seront suivis dans db/structure.sql et recréer la base de données ne les perdra pas.