Se você precisa ou deseja recursos específicos do banco de dados que o ActiveRecord não entende, você deve alternar para
db/structure.sql
para manter o controle de seu esquema. db/structure.sql
é praticamente um dump bruto do seu esquema feito usando as ferramentas nativas do banco de dados, portanto, ele conterá gatilhos, restrições CHECK, índices nos resultados da função e tudo mais. A comutação é fácil:
- Atualize seu
config/application.rb
para conterconfig.active_record.schema_format = :sql
. - Faça um
rake db:structure:dump
para obter umdb/structure.sql
inicial . - Excluir
db/schema.rb
da sua árvore de diretórios e controle de revisão. - Adicionar
db/structure.sql
ao controle de revisão. - Ajuste seus hábitos de rake:
- Usar
db:structure:dump
em vez dedb:schema:dump
- Usar
db:structure:load
em vez dedb:schema:load
- Usar
Todo o resto deve funcionar normalmente (assumindo, é claro, que você esteja são e usando o PostgreSQL para desenvolvimento, teste e produção).
Com essa alteração feita, seus gatilhos serão rastreados em
db/structure.sql
e recriar o banco de dados não os perderá.