PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Rails, PostgreSQL et déclencheurs d'historique

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 :

  1. Mettre à jour votre config/application.rb pour contenir config.active_record.schema_format = :sql .
  2. Faire un rake db:structure:dump pour obtenir un db/structure.sql initial .
  3. Supprimez db/schema.rb à partir de votre arborescence de répertoires et de votre contrôle de révision.
  4. Ajouter db/structure.sql au contrôle des révisions.
  5. Ajustez vos habitudes de rake :
    • Utilisez db:structure:dump au lieu de db:schema:dump
    • Utilisez db:structure:load au lieu de db:schema:load

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.