2012-02-21 18 views
7

मुझे माइग्रेशन के साथ एक बहुत ही परेशानी की समस्या है।रेक ने निरंतर निरंतर निरंतर निरंतर "कंप्यूटर"

पहले ERRORMESSAGE:

bundle exec rake db:migrate --trace 
(in /home/myhomefolder/msdnaa) 
** Invoke db:migrate (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Execute db:migrate 
rake aborted! 
An error has occurred, all later migrations canceled: 

uninitialized constant Computers 

अब मैं इस धारणा है कि हमारे व्यवस्थापक में से एक द्वारा किए गए एक अद्यतन कारण है कि इस हर बार होता है। यहां तक ​​कि अगर कोई प्रवास नहीं है!

मैंने जो किया है (समाधान के लिए स्टैक ओवरफ़्लो पर खोज के अलावा) "कंप्यूटर" के लिए प्रत्येक फ़ाइल को grep करना है। बेशक इस शब्द वाले कुछ फाइलें हैं और मैंने उन्हें सिंटेक्स त्रुटियों और सामान्य सामग्री जैसे ":" के लिए चेक किया है। फिर मैंने कुछ मदद के लिए एक कार्यकर्ता से पूछा (वह मुझसे ज्यादा रूबी के साथ अधिक कुशल है) और उसके पास कोई सुराग नहीं है, सब ठीक दिखता है।

मैं रूबी (1.8.7) और रेल (3.0.9) का थोड़ा पुराना संस्करण उपयोग कर रहा हूं, लेकिन मेरे पास हमारे सर्वर पर अपडेट करने का कोई अधिकार नहीं है, इसलिए मुझे इसका सामना करना होगा। और हाँ मैंने व्यवस्थापक से 1.9.x और 3.1.x पर अपडेट करने के लिए कहा, लेकिन यह गलती नहीं हो सकती क्योंकि यह पिछले हफ्ते ठीक काम करता था। तो यह उन त्रुटियों में से एक है जहां इसे काम करना चाहिए, लेकिन यह नहीं है और मैं शर्त लगाता हूं कि समाधान पीने के पानी के रूप में आसान है, लेकिन मुझे यह नहीं दिख रहा है!

कोई सुझाव?

संपादित करें: यहाँ --trace IST:

/var/lib/gems/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/meth    ods.rb:113:in `constantize' 
/var/lib/gems/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/meth    ods.rb:112:in `each' 
/var/lib/gems/1.8/gems/activesupport-3.0.9/lib/active_support/inflector/meth    ods.rb:112:in `constantize' 
/var/lib/gems/1.8/gems/activesupport-3.0.9/lib/active_support/core_ext/strin    g/inflections.rb:43:in `constantize' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:407    :in `load_migration' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:402    :in `migration' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:397    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:539    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:615    :in `call' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:615    :in `ddl_transaction' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:538    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:525    :in `each' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:525    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:435    :in `up' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/migration.rb:417    :in `migrate' 
/var/lib/gems/1.8/gems/activerecord-3.0.9/lib/active_record/railties/databas    es.rake:142 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:205:in `execute' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:158:in `invoke_with_call_    chain' 
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_    chain' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_tas    k' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_e    xception_handling' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:62:in `run' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_e    xception_handling' 
/var/lib/gems/1.8/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/var/lib/gems/1.8/gems/rake-0.9.2/bin/rake:32 
/var/lib/gems/1.8/bin/rake:19:in `load' 
/var/lib/gems/1.8/bin/rake:19 
Tasks: TOP => db:migrate 
+1

बाकी त्रुटि संदेश क्या है? आप '--trace' विकल्प का उपयोग करते हैं लेकिन आपने – Gareth

+0

को स्टैक ट्रेस काट दिया है! पोस्ट देखें ... – ProblemChild

उत्तर

22

मेरा अनुमान है कि आप बस एक प्रवास 20120221123456_computers.rb की तरह कुछ कहा जाता है, और यह के भीतर जोड़ लिया है, तुम कुछ की तरह है ...

आरंभ नहीं किया है
class SomeNameThatsNotComputers < ActiveRecord::Migration 
    ... 

जब रेल माइग्रेशन निष्पादित करता है, तो यह फ़ाइल को निष्पादित करने की अपेक्षा करता है, जो कक्षा को परिभाषित करता है, और उसके बाद कक्षा को तुरंत चालू करता है, और उस वर्ग के उदाहरण पर #up या #down को कॉल करता है। रेल कैसे जानते हैं कि किस वर्ग को तुरंत चालू किया जाए? यह संख्यात्मक उपसर्ग और अंडरस्कोर के बाद फ़ाइल नाम के हिस्से से मेल खाना चाहिए, इसलिए फ़ाइल नाम के लिए 20120221123456_computers.rb, कक्षा का नाम कंप्यूटर होना चाहिए।

+0

वह था ... थोड़े थोड़े! मैं अपनी सभी निराशा में क्या कहना भूल गया था कि यह प्रोजेक्ट विंडोज से लिनक्स तक पोर्ट किया गया था। तो यह समस्या होनी चाहिए लेकिन मैंने कक्षा के नामों पर ध्यान नहीं दिया (संकेत के लिए धन्यवाद)। कक्षा वास्तव में CreateComputers नामित की गई थी ... बिल्कुल समझ में नहीं आता है, लेकिन कंप्यूटर को नाम बदलने से समस्या ठीक हो गई ... जैसा कि मैंने कहा: पीने के पानी के रूप में आसान! बहुत बहुत धन्यवाद! – ProblemChild

+0

ओह इसे couse की समस्या नहीं होनी चाहिए;) – ProblemChild

+0

आह हाँ, यह मुझे फेंक दिया क्योंकि आपने अपने प्रश्न में उल्लेख किया था: "यहां तक ​​कि अगर कोई माइग्रेशन नहीं है"। – Gareth

0

जैसा कि आपने कहा ग्रेप "कंप्यूटर" यही समस्या है के अस्तित्व में बताता है। इसका मतलब है कि कंप्यूटर परिभाषित नहीं है लेकिन उपयोग किया जा रहा है। माइग्रेशन पहली बार एप्लिकेशन पर्यावरण लोड करता है और उस समय यह bcoz कंप्यूटर में विफल रहता है

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