Ако имате нужда или искате специфични за базата данни функции, които ActiveRecord не разбира, тогава трябва да преминете към db/structure.sql
за проследяване на вашата схема. db/structure.sql
е до голяма степен необработен дъмп на вашата схема, направен с помощта на собствените инструменти на базата данни, така че ще съдържа тригери, ПРОВЕРКИ ограничения, индекси на резултатите от функциите и всичко останало.
Превключването е лесно:
- Актуализирайте своя
config/application.rb
да съдържаconfig.active_record.schema_format = :sql
. - Направете
rake db:structure:dump
за да получите началенdb/structure.sql
. - Изтрийте
db/schema.rb
от дървото на вашите директории и контрола на ревизии. - Добавете
db/structure.sql
за контрол на ревизии. - Коригирайте навиците си за рейк:
- Използвайте
db:structure:dump
вместоdb:schema:dump
- Използвайте
db:structure:load
вместоdb:schema:load
- Използвайте
Всичко останало трябва да работи както обикновено (ако приемем, разбира се, че сте здрави и използвате PostgreSQL за разработка, тестване и производство).
С тази промяна вашите задействания ще бъдат проследявани в db/structure.sql
и повторното създаване на базата данни няма да ги загуби.