2010-10-09 8 views
37

विफल रहता है मैं अपना पहला ऐप हेरोोकू में तैनात करने की कोशिश कर रहा हूं। मैं डेटाबेस के रूप में स्क्लाइट का उपयोग कर रहा हूँ। जहां तक ​​मुझे पता है कि हेरोोकु स्क्लाइट का उपयोग नहीं करता है - यह बैकएंड में पोस्टग्रेस पर स्विच करता है।एसकलाइट 3 के साथ हेरोोक में आरओआर ऐप को तैनात करना

/usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/runtime.rb:64:in `require': no such file to load -- sqlite3 (LoadError)

मेरे gemfile (जो क्या मुझे लगता है इस समस्या का कारण है) के रूप में दिखता है::

source 'http://rubygems.org' 

gem 'rails', '3.0.0'   
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 

मैं क्या कर रहा हूँ

जब मैं मैं निम्नलिखित त्रुटि मिलती है की तैनाती कर रहा हूँ गलत?

+0

और इसे स्थानीय रूप से चलाने के बारे में क्या? मेरे पास मेरी सभी मणि फाइलों में स्क्लाइट है और उसकेोकू के साथ कोई समस्या नहीं है। क्या तुमने बंडल किया था? –

+0

मुझे नहीं लगता कि मैं बंडल की अवधारणा को समझता हूं। बंडलिंग क्या करती है? (एक लिंक करेगा) –

+0

डुप्लिकेट [SQLite3 के साथ स्ट्रोक रेल को Heroku विफल रहता है] (http: // stackoverflow।कॉम/प्रश्न/3747002/पुशिंग-रेल-साथ-sqlite3-to-heroku-fails) –

उत्तर

53

हेरोकू SQLite डेटाबेस का समर्थन नहीं करता है। आपको I also explained in this post के रूप में उत्पादन पर PostgreSQL का उपयोग करने की आवश्यकता है।

group :production do 
    gem "pg" 
end 

group :development, :test do 
    gem "sqlite3", "~> 1.3.0" 
end 

असल में, उत्पादन के लिए जितना संभव हो सके पर्यावरण के विकास/परीक्षण में उपयोग करने की अनुशंसा की जाती है। इसलिए, मैं आपको अपने सभी वातावरण PostgreSQL पर स्विच करने का सुझाव देता हूं।

# replace gem "sqlite3" with 
gem "pg" 
+0

क्या आप निश्चित हैं? मैं RailsTutorial.org में साथ चल रहा हूं - लेखक कुछ भी बदले बिना हरोकू में तैनात है –

+0

यहां पढ़ें http://docs.heroku.com/database –

+4

धन्यवाद, मुझे नहीं पता कि बेवकूफ ट्यूटोरियल का उल्लेख क्यों नहीं है कि –

-4

मैं sqlite3 का उपयोग कर रहा हूं और हरोकू में कोई समस्या नहीं है। यहां मेरा डेटाबेस है। एमआईएल

# SQLite version 3.x 
# gem install sqlite3-ruby (not necessary on OS X Leopard) 
development: 
    adapter: sqlite3 
    database: db/development.sqlite3 
    pool: 5 
    timeout: 5000 

# Warning: The database defined as "test" will be erased and 
# re-generated from your development database when you run "rake". 
# Do not set this db to the same as development or production. 
test: 
    adapter: sqlite3 
    database: db/test.sqlite3 
    pool: 5 
    timeout: 5000 

production: 
    adapter: sqlite3 
    database: db/production.sqlite3 
    pool: 5 
    timeout: 5000 
+7

डेटाबेस.एमएलएल फ़ाइल कोई फर्क नहीं पड़ता - "ठेठ रेल अनुप्रयोगों की तैनाती को कम करने के लिए, हेरोोकू स्वचालित रूप से तैनाती पर एक नई डेटाबेस.आईएमएल फ़ाइल उत्पन्न करता है" –

3

सिमोन कार्लेटी सही है और जोओस्ट भी है। आपको केवल sqlite3 मणि को समूहित करने या इसे पूरी तरह से अपने Gemfile से हटाने की आवश्यकता है।

... 
group :development, :test do 
    gem "sqlite3-ruby", "~> 1.3.0", :require => "sqlite3" 
end 
... 

या इस:

... 
#No reference to sqlite3-ruby 
... 

क्या आप पूरी तरह से संदर्भ निकाल देते हैं तो होगा शायद गड़बड़ Heroku सिर्फ पता है कि तुम उत्पादन

तो इस के लिए sqlite3 का उपयोग नहीं करना चाहते हैं की जरूरत है अपने स्थानीय डीबी को ऊपर रखें

0

मैं यहां हर जवाब को देखने के लिए इस पर अटक गया था, लेकिन मुझे इसे एक साथ आने के लिए पर्याप्त विवरण नहीं मिल सका। यह पेज मुझे सब कुछ के माध्यम से चला गया। http://railsapps.github.io/rails-heroku-tutorial.html

शुभकामनाएं।

0

उपयोग कर सकते हैं इस समस्या के खिलाफ मेरे सिर पीटने के बाद, मुझे एहसास हुआ कि मैं Heroku करने के लिए अपने रेपो के मास्टर शाखा धक्का किया गया था, जबकि मैं सब कर रहा था मेरे पोस्टर के मेरे तैनात-पोस्टग्रेज़ मेरी रिपो की शाखा में परिवर्तन!

मैं अपने तैनाती-postgres अपने स्थानीय गुरु [git checkout master; git merge deploy-postgres] के साथ शाखा विलय कर दिया और उसके बाद git push heroku master प्रति Heroku प्रलेखन के रूप में चला सकते हैं।

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