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:
- Actualice su
config/application.rbpara contenerconfig.active_record.schema_format = :sql. - Haga un
rake db:structure:dumppara obtener undb/structure.sqlinicial . - Eliminar
db/schema.rbdesde su árbol de directorios y control de revisiones. - Añadir
db/structure.sqlal control de revisiones. - Ajuste sus hábitos de rake:
- Usar
db:structure:dumpen lugar dedb:schema:dump - Usar
db:structure:loaden lugar dedb:schema:load
- Usar
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á.