Развертывание приложения RoR в Heroku с SQLite 3 завершается неудачно - PullRequest
39 голосов
/ 09 октября 2010

Я пытаюсь развернуть свое первое приложение в Heroku.Я использую SQLite в качестве базы данных.Насколько я знаю, Heroku не использует SQLite - он переключается на Postgres в бэкэнде.

При развертывании я получаю следующую ошибку:

/ usr / ruby1.8.7 / lib / ruby ​​/ gems / 1.8 / gems / bundler-1.0.0 / lib / bundler / runtime.rb: 64: в `require ': такой файл не загружается - sqlite3 (LoadError)

Мой Gemfile (что, как я полагаю, вызывает эту проблему) выглядит следующим образом:

source 'http://rubygems.org'

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

Что я делаю не так?

Ответы [ 6 ]

53 голосов
/ 09 октября 2010

Heroku не поддерживает базы данных SQLite.Вам необходимо использовать PostgreSQL на производстве, как Я также объяснил в этом посте .

group :production do
  gem "pg"
end

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

На самом деле, рекомендуется использовать при разработке / тестировании среду, максимально приближенную к рабочей.Поэтому я предлагаю вам переключить все ваши среды на PostgreSQL.

# replace gem "sqlite3" with
gem "pg"
4 голосов
/ 21 октября 2010

Симона Карлетти права, как и Джуст.Вам нужно только сгруппировать гем sqlite3 или полностью удалить его из своего файла Gemfile.Heroku просто нужно знать, что вы не хотите использовать sqlite3 для производства

Так вот:

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

Или вот это:

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

Если вы удалитеСсылка целиком вы, вероятно, испортите вашу локальную базу данных, хотя

0 голосов
/ 13 марта 2016

После того, как я ударился головой об эту проблему, я понял, что толкаю ветку master моего репо на heroku, пока я вносил все свои изменения postgres в моем deploy-postgres ветка моего репо!

Я слил свою ветку deploy-postgres с моим локальным мастером [git checkout master; git merge deploy-postgres] и затем смог запустить git push heroku master согласно документации на heroku.

0 голосов
/ 26 ноября 2014

Вы можете использовать clearDB addon

и gem 'mysql2' вместо gem 'sqlite3'

0 голосов
/ 17 июня 2013

Я застрял на этом в течение нескольких часов, просматривая каждый ответ здесь, но я не мог получить достаточно деталей, чтобы собрать его вместе. Этот постраничный провел меня через все. http://railsapps.github.io/rails-heroku-tutorial.html

Удачи.

0 голосов
/ 10 октября 2010

Я использую sqlite3 и развертывание в Heroku не проблема.Вот мой database.yml

# 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...