2012-06-03 10 views
6

के माध्यम से रत्न स्थापित करने में असफल रहा मैंने एक ही तरह से हेरोोकू को एक ऐप को धक्का देने की कोशिश की है जैसा मैंने हमेशा किया है। मैं रूबी 1.9.2 और रेल 3.2.1 का उपयोग कर रहा हूँ। हालांकि, अब मुझे यह त्रुटि संदेश मिल रहा है। मैं यह क्या सिफारिश की गई हैहेरोकू: पुश अस्वीकार - बंडलर

make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling. 

नोट किया था, यह इस भले ही मैं अपने gemfile

group :development, :test do 
    gem 'sqlite3' 
end 
group :production do 
    gem 'pg' 
end 

में किया था कर रहा है लेकिन टर्मिनल में gem install sqlite3 -v '1.3.5' कर रही है, लेकिन अभी भी धक्का को अस्वीकार कर दिया जा रहा है। मुझे यकीन नहीं है कि जेएम फाइलों को कैसे संदर्भित किया जाए, यह टीएमपी निर्देशिका में संदर्भित करता है, लेकिन यदि मैंने किया, तो भी मैं उन्हें नहीं समझूंगा

कोई सुझाव?

Gem files will remain installed in /tmp/build_1timyd7o5k59l/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5 for inspection. 
     Results logged to /tmp/build_1timyd7o5k59l/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out 
     An error occurred while installing sqlite3 (1.3.5), and Bundler cannot continue. 
     Make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling. 
! 
!  Failed to install gems via Bundler. 
! 
!  Heroku push rejected, failed to compile Ruby/rails app 

उत्तर

9

मैं हमेशा बस SQLite3 मणि बाहर टिप्पणी और यह मेरे लिए अच्छी तरह से काम करता है, तो मेरे gemfile इस तरह दिखता है जब मैं Heroku करने के लिए धक्का:

# Development Database 
#gem 'sqlite3' 
# Production Database 
gem 'pg' 

संपादित करें:

उपरोक्त समाधान काम करता है, और यदि आप किसी भी कारण से अपने रत्न अपडेट नहीं करना चाहते हैं तो यह आसान है।

group :development, :test do 
    gem 'sqlite3' 
end 
group :production do 
    gem 'pg' 
end 

फिर अपने gemfile.lock फ़ाइल को नष्ट: बेहतर इस समस्या का दीर्घकालिक समाधान निम्न करने के लिए है। आपको एक नई gemfile.lock फ़ाइल जेनरेट करने की आवश्यकता होगी जो आपके परिवर्तनों को दर्शाती है। टर्मिनल समय में:

bundle update 

अंत में, अपने भंडार को अद्यतन करने और टर्मिनल में निम्न कार्य करके Heroku करने के लिए धक्का:

git add . 
git commit -m "commit message" 
git push heroku 
+1

महान और सरल जवाब! धन्यवाद! – RileyE

+0

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

+0

यह सच है, लेकिन सवाल यह था कि उपर्युक्त कैसे करें। उपरोक्त सरल साइटों, या शुरुआती लोगों के लिए ठीक है जो स्थानीय रूप से SQLite का उपयोग करना चाहते हैं। – Arel

1

जहां तक ​​मुझे पता है कि हेरोकू sqlite3 का समर्थन नहीं करता है, बल्कि इसके बजाय आप PostgreSQL डेटाबेस के साथ। आपको अपने जेमफाइल को और आपके डेटाबेस.इम्ली को संशोधित करने की आवश्यकता होगी। अपने उत्पादन समूह के लिए तो, अपने Gemfile में, आप चाहेंगे:

https://devcenter.heroku.com/articles/rails3

संपादित करें:

वहाँ प्रकट होता है यहाँ एक अधिक विस्तृत जवाब हो सकता है, तो यह एक नकली हो सकता है: Pushing Rails with SQLite3 to Heroku fails

+0

मैं भूल donot एक लंबे समय के लिए heroku के साथ sqlite3 का उपयोग कर रहा है। हेरोकू सिर्फ पोस्टग्रेज़ पर sqlite3 को मानचित्र करता है – Leahcim

+0

कोई भी मौका आप अपना पूरा जेमफाइल पोस्ट कर सकते हैं? –

2

वास्तव में अपने प्रारंभिक Gemfile कोड सही था, तो आप स्थानीय रूप से sqlite3 उपयोग करना चाहता था । जैसे आप दिखाते हैं तो आप मणि फ़ाइल में इस डाल:

group :development, :test do 
    gem 'sqlite3' 
end 
group :production do 
    gem 'pg' 
end 

तो आप अपने स्थानीय Gemfile.lock हटा देते हैं और चलाने के लिए है:

bundle update 

.lock फ़ाइल को फिर से बनाने के लिए। तो जोड़ सकते हैं और Gemfile फिर से प्रतिबद्ध:

git add Gemfile 
git commit -m "Gemfile commit message" 

तो रेपो के लिए नए Gemfile धक्का:

git push master 

परिवर्तन GIT विवरण तदनुसार जाहिर है, लेकिन आप बात समझ।यह Gemfile जोड़ने/करने/धक्का देने के बारे में सब कुछ है।

1

आप Gemfile.lock अद्यतन जोड़ने होंगे git और Git धक्का Heroku मास्टर कोशिश करने के लिए ... यह मेरे लिए बहुत काम किया है और यकीन है कि के लिए कहीं भी होगी आप के लिए

और जोड़ने के लिए config.action_controller.perform_caching = true

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