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.rbatt innehållaconfig.active_record.schema_format = :sql. - Gör en
rake db:structure:dumpför att få en initialdb/structure.sql. - Ta bort
db/schema.rbfrån ditt katalogträd och revisionskontroll. - Lägg till
db/structure.sqltill revisionskontroll. - Justera dina rakevanor:
- Använd
db:structure:dumpistället fördb:schema:dump - Använd
db:structure:loadistä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.