क्या आप सिर्फ माइग्रेशन के बिना रेल्स स्कीमा बदल सकते हैं?

Aug 17 2020

मैं रेल एपीआई प्रमाणीकरण के लिए bcrypt का उपयोग कर रहा हूं - यह पता लगाने के कई घंटों के बाद आईसीसी है कि रीज़ एपि के माध्यम से काम नहीं करने के लिए डेविस कैसे प्राप्त करें। (केवल रिएक्ट के दृश्य के साथ एपीआई करने की कोशिश कर रहा है)।

वैसे भी, मैंने इसे तब तक बनाया जब तक कि तकनीकी ऋण का भुगतान नहीं करना पड़ा। BCrypt password_digest और Devise Hashed_password एक गतिरोध पर हैं और मैं दूसरे को अनदेखा करने के लिए एक प्रतीत नहीं हो सकता। मुझे bcrypt के लिए समायोजित करने के लिए स्कीमा के उस हिस्से को बदलने की आवश्यकता है। इसके बारे में जाने का सबसे अच्छा तरीका क्या है?

जवाब

3 max Aug 17 2020 at 18:49

माइग्रेशन का उपयोग किए बिना डेटाबेस ट्रांसफ़ॉर्मेशन करना उतना ही आसान है जितना कि रनिंग rails dbजो आपके डेटाबेस के लिए CLI शुरू करेगा और SQL टाइप करेगा। लेकिन फिर आपको परीक्षण / विकास / उत्पादन डेटाबेस में उन चरणों को दोहराना होगा और यह सुनिश्चित करना होगा कि परियोजना पर काम करने वाले अन्य डेवलपर्स भी अपने स्थानीय डेटाबेस पर उन चरणों का प्रदर्शन करें।

यह वास्तव में त्रुटि प्रवण प्रक्रिया है और वास्तव में पलायन के साथ समस्या को हल करना शायद आपके विचार से बहुत कम असंभव है।

इसके बारे में जाने का सबसे अच्छा तरीका क्या है?

अज्ञान का सबसे अच्छा समाधान ज्ञान है ।

ActiveRecord माइग्रेशन SQL क्वेरी बनाने और विभिन्न डेटाबेस के विरुद्ध माइग्रेशन चलाने के लिए और डोमेन रखने के लिए एक डोमेन विशिष्ट भाषा (DSL) है, जिस पर डेटाबेस में मेटाडेटा तालिका के माध्यम से माइग्रेशन चलाए जाते हैं।

यहां तक ​​कि अगर आप DSL के माध्यम से जो भी क्वेरी करने की कोशिश कर रहे हैं उसे व्यक्त नहीं कर सकते हैं तब भी आप किसी भी मनमाने ढंग से SQL स्ट्रिंग का उपयोग कर सकते हैं ।