Se hai bisogno o desideri funzionalità specifiche del database che ActiveRecord non comprende, dovresti passare a db/structure.sql per tenere traccia del tuo schema. db/structure.sql è praticamente un dump grezzo del tuo schema realizzato utilizzando gli strumenti nativi del database, quindi conterrà trigger, vincoli CHECK, indici sui risultati delle funzioni e tutto il resto.
Cambiare è facile:
- Aggiorna il tuo
config/application.rbper contenereconfig.active_record.schema_format = :sql. - Fai un
rake db:structure:dumpper ottenere undb/structure.sqliniziale . - Elimina
db/schema.rbdall'albero delle directory e dal controllo delle revisioni. - Aggiungi
db/structure.sqlal controllo di revisione. - Regola le tue abitudini di rake:
- Usa
db:structure:dumpinvece didb:schema:dump - Usa
db:structure:loadinvece didb:schema:load
- Usa
Tutto il resto dovrebbe funzionare come al solito (supponendo, ovviamente, che tu sia sano di mente e che utilizzi PostgreSQL per lo sviluppo, i test e la produzione).
Con questa modifica apportata, i tuoi attivatori verranno tracciati in db/structure.sql e ricreare il database non li perderà.