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.rb
pour contenirconfig.active_record.schema_format = :sql
. - Faire un
rake db:structure:dump
pour obtenir undb/structure.sql
initial . - Supprimez
db/schema.rb
à partir de votre arborescence de répertoires et de votre contrôle de révision. - Ajouter
db/structure.sql
au contrôle des révisions. - Ajustez vos habitudes de rake :
- Utilisez
db:structure:dump
au lieu dedb:schema:dump
- Utilisez
db:structure:load
au 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.