Om du behöver eller vill ha databasspecifika funktioner som ActiveRecord inte förstår bör du byta till db/structure.sql
för att hålla reda på ditt schema. db/structure.sql
är i stort sett en rådump av ditt schema gjort med hjälp av databasens inbyggda verktyg så det kommer att innehålla triggers, CHECK-begränsningar, index på funktionsresultat och allt annat.
Det är enkelt att byta:
- Uppdatera din
config/application.rb
att innehållaconfig.active_record.schema_format = :sql
. - Gör en
rake db:structure:dump
för att få en initialdb/structure.sql
. - Ta bort
db/schema.rb
från ditt katalogträd och revisionskontroll. - Lägg till
db/structure.sql
till revisionskontroll. - Justera dina rakevanor:
- Använd
db:structure:dump
istället fördb:schema:dump
- Använd
db:structure:load
istället fördb:schema:load
- Använd
Allt annat ska fungera som vanligt (förutsatt att du är frisk och använder PostgreSQL för utveckling, testning och produktion).
Med denna ändring gjord kommer dina utlösare att spåras i db/structure.sql
och att återskapa databasen kommer inte att förlora dem.