sql >> Base de Datos >  >> RDS >> PostgreSQL

Rails, PostgreSQL y disparadores de historial

Si necesita o desea funciones específicas de la base de datos que ActiveRecord no comprende, debe cambiar a db/structure.sql para realizar un seguimiento de su esquema. db/structure.sql es prácticamente un volcado sin procesar de su esquema hecho con las herramientas nativas de la base de datos, por lo que contendrá activadores, restricciones CHECK, índices en los resultados de la función y todo lo demás.

Cambiar es fácil:

  1. Actualice su config/application.rb para contener config.active_record.schema_format = :sql .
  2. Haga un rake db:structure:dump para obtener un db/structure.sql inicial .
  3. Eliminar db/schema.rb desde su árbol de directorios y control de revisiones.
  4. Añadir db/structure.sql al control de revisiones.
  5. Ajuste sus hábitos de rake:
    • Usar db:structure:dump en lugar de db:schema:dump
    • Usar db:structure:load en lugar de db:schema:load

Todo lo demás debería funcionar como de costumbre (asumiendo, por supuesto, que está cuerdo y usa PostgreSQL para el desarrollo, las pruebas y la producción).

Con este cambio realizado, sus disparadores serán rastreados en db/structure.sql y recrear la base de datos no los perderá.