ruby on rails - रेल-जैसे डाटाबेस माइग्रेशन?




ruby-on-rails database (4)

मैंने व्यक्तिगत रूप से इसे नहीं किया है, लेकिन किसी अन्य रेल सामग्री के बिना ActiveRecord :: माइग्रेशन का उपयोग करना संभव है। लोड पथ को सही तरीके से स्थापित करना कठिन हिस्सा होगा, लेकिन वास्तव में आपको केवल rake कार्य और db/migrate निर्देशिका प्लस जो कुछ वे रत्नों पर निर्भर करते हैं, संभवतः actviesupport , actviesupport और शायद कुछ अन्य railties जैसे की railties । मैं इसे कोशिश करूँगा और बस देखूँगा कि कक्षाएं क्या गायब हैं और उन लोगों को जोड़ते हैं।

पिछली कंपनी में हमने एक ऐसे उपकरण का निर्माण किया था, जो कि सक्रिय रूपरेखा :: माइग्रेशन के लिए अनिवार्य रूप से किया था, सिवाय इसके कि जावा में मेवेन प्लगइन के रूप में लिखा गया था। यह सब किया गया था एसक्यूएल लिपियों के पाठ blobs इकट्ठा। यह क्रम में चलने वाले फाइलनामों के बारे में चतुर होना चाहिए और पता होना चाहिए कि एक वर्जनिंग टेबल कैसे अपडेट किया जाए।

क्या रेलिक्स माइग्रेशन जैसे डेटाबेस माइग्रेशन टूल (यूनिक्स) पर स्थापित / उपयोग करने में कोई आसान है? मैं वास्तव में इस विचार को पसंद करता हूं, लेकिन अपने डेटाबेस माइग्रेशन का प्रबंधन करने के लिए पूरी तरह से रूबी / रेल स्थापित करना ओवरकिल लगता है।


बस ActiveRecord और एक सरल Rakefile का उपयोग करें उदाहरण के लिए, यदि आप अपने माइग्रेशन को db/migrate डायरेक्टरी में डालते db/migrate और आपके पास डेटाबेस.आईएमएल फाइल होती है जिसमें आपका डीबी कॉन्फ़िग होता है, तो यह सरल रैकफाइल को काम करना चाहिए:

Rakefile:

require 'active_record'
require 'yaml'

desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x"
task :migrate => :environment do
  ActiveRecord::Migrator.migrate('db/migrate', ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
end

task :environment do
  ActiveRecord::Base.establish_connection(YAML::load(File.open('database.yml')))
  ActiveRecord::Base.logger = Logger.new(STDOUT)
end

database.yml :

adapter: mysql
encoding: utf8
database: test_database
username: root
password:
host: localhost

बाद में, आप rake migrate करने में सक्षम होंगे और आसपास के रेल ऐप के बिना सभी माइग्रेशन अच्छाई कर सकेंगे।

वैकल्पिक रूप से, मेरे पास बिश स्क्रिप्ट का एक सेट है जो ActiveRecord माइग्रेशन के लिए एक बहुत ही समान कार्य करता है, लेकिन वे केवल ओरेकल के साथ काम करते हैं मैं रूबी और पटरियों पर स्विच करने से पहले उनका इस्तेमाल करता था। वे कुछ जटिल हैं और मैं उनके लिए कोई समर्थन नहीं प्रदान करता हूं, लेकिन अगर आप रुचि रखते हैं, तो मुझसे संपर्क करने में संकोच न करें।


मैं देख रहा हूं कि यह विषय वाकई बूढ़ा है, लेकिन भविष्य के गुोगलरों के लिए मैं चिप का हूँ

मैं वास्तव में Python SQLAlchemy और SQLAlchemy- माइग्रेट का उपयोग करने के लिए डेटाबेस है कि मुझे संस्करण नियंत्रण की जरूरत है, अगर आप ActiveRecord :: Migrate मार्ग नहीं जाना चाहते हैं का उपयोग करना पसंद है।


रेलवे स्थापित किए बिना सक्रिय रिकॉर्ड माइग्रेशन चलाने की अनुमति देने के लिए यह प्रोजेक्ट डिज़ाइन किया गया है:

https://github.com/bretweinraub/rails-free-DB-Migrate

इसे स्थापित करें (git इसे क्लोन करें) और इसे अपने प्रोजेक्ट के आधार के रूप में उपयोग करें





migration