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.rb
para contenerconfig.active_record.schema_format = :sql
. - Haga un
rake db:structure:dump
para obtener undb/structure.sql
inicial . - Eliminar
db/schema.rb
desde su árbol de directorios y control de revisiones. - Añadir
db/structure.sql
al control de revisiones. - Ajuste sus hábitos de rake:
- Usar
db:structure:dump
en lugar dedb:schema:dump
- Usar
db:structure:load
en 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á.