Jeśli potrzebujesz lub chcesz funkcji specyficznych dla bazy danych, których ActiveRecord nie rozumie, powinieneś przełączyć się na db/structure.sql do śledzenia schematu. db/structure.sql jest właściwie surowym zrzutem twojego schematu wykonanym przy użyciu natywnych narzędzi bazy danych, więc będzie zawierał wyzwalacze, ograniczenia CHECK, indeksy wyników funkcji i wszystko inne.
Przełączanie jest łatwe:
- Zaktualizuj plik
config/application.rbzawieraćconfig.active_record.schema_format = :sql. - Wykonaj
rake db:structure:dumpaby uzyskać początkowydb/structure.sql. - Usuń
db/schema.rbz twojego drzewa katalogów i kontroli wersji. - Dodaj
db/structure.sqldo kontroli wersji. - Dostosuj swoje nawyki dotyczące prowizji:
- Użyj
db:structure:dumpzamiastdb:schema:dump - Użyj
db:structure:loadzamiastdb:schema:load
- Użyj
Wszystko inne powinno działać jak zwykle (zakładając oczywiście, że jesteś zdrowy na umyśle i używasz PostgreSQL do programowania, testowania i produkcji).
Po wprowadzeniu tej zmiany wyzwalacze będą śledzone w db/structure.sql a odtworzenie bazy danych ich nie straci.