Ако имате нужда или искате специфични за базата данни функции, които 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 и повторното създаване на базата данни няма да ги загуби.