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.rb
per contenereconfig.active_record.schema_format = :sql
. - Fai un
rake db:structure:dump
per ottenere undb/structure.sql
iniziale . - Elimina
db/schema.rb
dall'albero delle directory e dal controllo delle revisioni. - Aggiungi
db/structure.sql
al controllo di revisione. - Regola le tue abitudini di rake:
- Usa
db:structure:dump
invece didb:schema:dump
- Usa
db:structure:load
invece 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à.