2010-09-01 19 views
13

मैंने पिछले अप्रैल में रेल 2 का उपयोग शुरू किया लेकिन इस जून को रोक दिया क्योंकि मैंने सोचा था कि जब रेल 3 जारी किया गया था तो यह अधिक व्यावहारिक होगा क्योंकि इसमें से बहुत से पूरी तरह से पुनर्निर्मित और पुनर्गठित किया गया था। मैं उबंटू 10.04 (SQLite3 के साथ डिफ़ॉल्ट डीबी के रूप में) के साथ काम करता था, लेकिन अब मैं विंडोज 7 और माईएसQL 5 का उपयोग कर रहा हूं। मैंने पहले से ही MySQL के लिए मणि एडाप्टर स्थापित किया है, लेकिन इसका उपयोग करने के लिए मुझे अभी भी डेटाबेस.आईएमएल को ट्वीक करने की आवश्यकता है। धन्यवाद।मैं रेल 3 में डिफ़ॉल्ट डेटाबेस के रूप में MySQL कैसे सेट करूं?

उत्तर

25

डेटाबेस कॉन्फ़िगरेशन के संदर्भ में, आपके MySQL ड्राइवर को लोड करने के अपवाद के साथ रेल 2 और 3 के बीच वास्तव में कुछ भी नहीं बदला गया है। यह config/environment.rb में किया जाना थे, लेकिन अब Gemfile में किया जाता है:

gem 'mysql' 

डिफ़ॉल्ट config/database.yml फ़ाइल SQLite के साथ की स्थापना की है, लेकिन आप आसानी MySQL होने के लिए इस पर बदल सकते हैं। एक जेनेरिक वर्जन लगता है:

defaults: &defaults 
    adapter: mysql 
    username: localdev 
    password: mylocaldevpasswordwhateveritis 
    host: localhost 

development: 
    <<: *defaults 
    database: project_dev 

test: 
    <<: *defaults 
    database: project_test 

यह adapter घोषणा लाइन सेट कि क्या ड्राइवर का उपयोग करने के लिए है।

+0

क्या एसक्लाइट के बजाय mysql को डिफ़ॉल्ट बनाने का कोई तरीका है? –

+0

नई परियोजनाओं के लिए? आसानी से नहीं। यह रेल की मुख्य विशेषता है। आम तौर पर लोग अपने नए अनुप्रयोगों के लिए एक "कंकाल" प्रोजेक्ट तैयार करते हैं, जिसे आवश्यकतानुसार अनुकूलित किया जाता है, डेटाबेस ड्राइवरों, प्लगइन्स, रत्नों को आप जितनी चाहें उतनी सेट अप करते हैं, फिर इसे नई परियोजनाओं के लिए क्लोन करें। इस तरह आप को कोई भी चूक हो सकती है, चाहे कितना विदेशी हो। – tadman

+0

धन्यवाद। तो मैं इसे नई परियोजनाओं के लिए डिफ़ॉल्ट नहीं बना सकता। – arscariosus

7

ताडमैन के जवाब में, रेल 3 के लिए मणि 'mysql2' का उपयोग करें क्योंकि रेल 3 अब नए mysql एडाप्टर का उपयोग करता है !!

+0

इसके अलावा, डेटाबेस.मिल 'एडाप्टर में: mysql' -> 'एडाप्टर: mysql2' –

3

जब आप कोई नया एप्लिकेशन उत्पन्न करते हैं तो आप डिफ़ॉल्ट रूप से माईएसक्ल में रेल बदल सकते हैं, लेकिन आपको अपनी रेल स्थापना में एक लाइन संपादित करना होगा। आपको हर संस्करण में बदलाव करना होगा, और हर बार जब आप रेल मणि को अपडेट करेंगे।

मैं रूबी-एंटरप्राइज़ का उपयोग करता हूं। तो यहाँ मैं क्या कर रहा है:

फ़ाइल में (जहां 1.8 रूबी संस्करण है और 3.0.4 रेल संस्करण है):

/opt/ruby-enterprise/lib/ruby/gems/1.8/gems/railties-3.0.4/lib/rails/generators/rails/app/app_generator.rb 

संपादित करें: में रेल-3.1.0-RC1 फ़ाइल है: इस लाइन के लिए

gems/railties-3.1.0.rc1/lib/rails/generators/app_base.rb 

खोज:

class_option :database, :type => :string, :aliases => "-d", :default => "sqlite3", 

बदलें "sqlite3" से "mysql"।

class_option :database, :type => :string, :aliases => "-d", :default => "mysql", 

तो बजाय कर रही है:

rails new application_name -d mysql 

मैं सिर्फ कर सकते हैं (और database.yml और Gemfiles mysql2 मणि ​​के लिए कॉन्फ़िगर किया गया है):

rails new application_name 

इसका मतलब यह है तुम हो सही mysql2 मणि ​​पहले से स्थापित है। इसके अलावा, मैं केवल यह कर रहा हूं क्योंकि रेल 3 बाहर आया था। यह शायद पिछले संस्करणों के लिए समान है। दोबारा, जब भी आप रेल अपडेट करते हैं, तो आपको उस फ़ाइल को ढूंढना और संपादित करना होगा।

+1

मैं रूबी 1.9.2 और रेल 3 के साथ आरवीएम का उपयोग कर रहा हूं, और मेरे लिए फ़ाइल का पथ यहां पाया गया है: $ (आरवीएम गेमदिर) /gems/railties-3.0.5/lib/rails/generators/rails/app/app_generator.rb। प्रशिक्षकों पूरी तरह से काम करते हैं। – gunit888

0

रेल 3.2 जब से तुम अगर तुम बनाने के एक फ़ाइल .railsrc कहा जाता है और w/की तरह सामग्री अपने घर निर्देशिका में डाल दिया है कि हमेशा rails new

तो के लिए लागू होगी कस्टम कमांड लाइन विकल्पों के साथ एक .railsrc फ़ाइल परिभाषित कर सकते हैं, यह -d mysql यह mysql को आपका डिफ़ॉल्ट डेटाबेस बना देगा। आप वहां में से कोई भी कमांड लाइन विकल्प डाल सकते हैं (application templates सहित जो कि भयानक हैं!)

अपने सभी विकल्पों को देखने के लिए कमांड लाइन से rails new --help चलाएं।

संबंधित मुद्दे