2016-05-17 3 views
0

Ich versuche, meine App zu Heroku zu schieben. Ich bekomme Fehler im Terminal mit den Worten: Bei der Installation von sqlite3 (1.3.11) ist ein Fehler aufgetreten, und Bundler kann nicht fortfahren. Stellen Sie außerdem sicher, dass gem install sqlite3 -v '1.3.11' vor dem Bündeln erfolgreich ist. Ich habe viel über sqlite2 und pg gelesen, kann aber nicht herausfinden, wie ich das in meine gemfile integrieren kann. Vielen Dank.Wie richte ich eine App ein, die auf Heroku läuft? Sqlite3 errors

Hier ist meine gemfile:

source 'https://rubygems.org' 


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '4.2.2' 
# Use SCSS for stylesheets 
gem 'sass-rails', '~> 5.0' 
# Use Uglifier as compressor for JavaScript assets 
gem 'uglifier', '>= 1.3.0' 
# Use CoffeeScript for .coffee assets and views 
gem 'coffee-rails', '~> 4.1.0' 
# See https://github.com/rails/execjs#readme for more supported runtimes 
# gem 'therubyracer', platforms: :ruby 

# Use jquery as the JavaScript library 
gem 'jquery-rails' 
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks 
gem 'turbolinks' 
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder 
gem 'jbuilder', '~> 2.0' 
# bundle exec rake doc:rails generates the API under doc/api. 
gem 'sdoc', '~> 0.4.0', group: :doc 

# Use ActiveModel has_secure_password 
# gem 'bcrypt', '~> 3.1.7' 

# Use Unicorn as the app server 
# gem 'unicorn' 

# Use Capistrano for deployment 
# gem 'capistrano-rails', group: :development 

group :development, :test do 
    # Call 'byebug' anywhere in the code to stop execution and get a debugger console 
    gem 'byebug' 

    # Access an IRB console on exception pages or by using <%= console %> in views 
    gem 'web-console', '~> 2.0' 

    # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring 
    gem 'spring' 

Ende

Dank

Antwort

4

SQLite eine gute Möglichkeit ist es, ein Projekt zu starten und funktioniert gut, wenn mit kleinen Datenmengen auf einem lokalen Rechner arbeiten. Heroku hingegen benötigt etwas mehr als SQLite zu bieten hat. Wenn Sie Heroku mit Rails verwenden, bevorzugen Sie PostgreSQL. Sehen Sie sich ihre Dokumente auf SQLite und PostgreSQL

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

Wechsel zu einer PG-Datenbank dauert ein wenig mehr Arbeit, als wenn Sie die App mit ihm ursprünglich gemacht hatten, aber es ist nicht unmöglich. Dieser Link oben enthält Schritte, um Ihnen zu helfen, SQLite zu PostgreSQL zu wechseln.

Heroku hat großartige Dokumente für ihre Rails-Integration. wenn Sie einige weitere Informationen benötigen Besuche https://devcenter.heroku.com/categories/ruby

2

Um sqlite3 auf Ihrem Projekt verwenden nur die Linie unten auf Ihrem gemfile:

gem 'sqlite3'

Um Postgres als Datenbank Add zu verwenden:

gem 'pg'

Denken Sie daran, die Postgres-Pakete auf Ihrem System zu installieren, wenn Sie Ubuntu verwenden, sollte es sein:

sudo apt-get install postgres libpq-dev

0

Tim richtig ist, Heroku nicht unterstützt SQLite und bevorzugt den Einsatz von PostgreSQL. Wenn Sie jedoch Ihre Rails-Anwendung bereits gestartet haben und bereit sind, zu Heroku zu wechseln, haben Sie zweifellos bereits begonnen, SQLite zu verwenden, daher der Fehler, den Sie beim Push-Versuch bekommen. Momentan hat Ihr Gemfile weder PostgreSQL (pg) noch SQLite (sqlite3), was wahrscheinlich zu Problemen führt.

Um dies zu umgehen, können Sie Produktions- und Test Gruppierung innerhalb Ihrer Gemfile

dh

group :production do 
    gem 'pg' 
end 
group :development, :test do 
    gem 'sqlite3' 
    gem 'byebug' 
    gem 'other-gems' 
end 

Wenn Sie mit Heroku, beim Entfalten, PostgreSQL (S. eingestellt keine Staging-Umgebung haben können) wird zur Standarddatenbankeinstellung. Damit können Sie weiterhin lokal mit dem arbeiten, was Sie bereits getan haben und mit PostgreSQL in der Produktion.

+0

Ich würde jedoch bald auch die Entwicklung auf PostgreSQL migrieren. –

+0

Auch richtig, wie mein Verständnis ist, wird PG in der Entwicklung Ihnen ermöglichen, genauer festzustellen, Probleme, die Sie möglicherweise in der Produktion haben. –

Verwandte Themen