PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Rails, PostgreSQL e trigger di cronologia

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:

  1. Aggiorna il tuo config/application.rb per contenere config.active_record.schema_format = :sql .
  2. Fai un rake db:structure:dump per ottenere un db/structure.sql iniziale .
  3. Elimina db/schema.rb dall'albero delle directory e dal controllo delle revisioni.
  4. Aggiungi db/structure.sql al controllo di revisione.
  5. Regola le tue abitudini di rake:
    • Usa db:structure:dump invece di db:schema:dump
    • Usa db:structure:load invece di db:schema:load

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à.