यदि आपको डेटाबेस-विशिष्ट सुविधाओं की आवश्यकता है या चाहते हैं जो ActiveRecord समझ में नहीं आता है तो आपको db/structure.sql पर स्विच करना चाहिए अपने स्कीमा पर नज़र रखने के लिए। db/structure.sql डेटाबेस के मूल टूल का उपयोग करके बनाई गई आपकी स्कीमा का एक कच्चा डंप है, इसलिए इसमें ट्रिगर्स, चेक बाधाएं, फ़ंक्शन परिणामों पर इंडेक्स और अन्य सभी चीजें शामिल होंगी।
स्विच करना आसान है:
- अपना
config/application.rbअपडेट करेंconfig.active_record.schema_format = :sql. को समाहित करने के लिए । - एक
rake db:structure:dumpकरें आरंभिकdb/structure.sqlget प्राप्त करने के लिए । - हटाएं
db/schema.rbआपकी निर्देशिका ट्री और संशोधन नियंत्रण से। db/structure.sqlजोड़ें संशोधन नियंत्रण के लिए।- अपनी रेक आदतों को समायोजित करें:
db:structure:dumpका उपयोग करेंdb:schema:dump. के बजायdb:structure:loadका उपयोग करेंdb:schema:load. के बजाय
बाकी सब कुछ हमेशा की तरह काम करना चाहिए (बेशक, यह मानते हुए कि आप समझदार हैं और विकास, परीक्षण और उत्पादन के लिए PostgreSQL का उपयोग कर रहे हैं)।
इस परिवर्तन के साथ, आपके ट्रिगर db/structure.sql . में ट्रैक किए जाएंगे और डेटाबेस को फिर से बनाने से वे नष्ट नहीं होंगे।