由于rails5.0.1中的sqlite3,Heroku部署失败

时间:2017-04-15 20:37:18

标签: ruby-on-rails ruby heroku deployment sqlite

这个问题令人沮丧。我试过所有现有的解决方案让我来描述那些和我未解决的情况。

我的Gemfile看起来像这样:

gem 'rails', '~> 5.0.1'
gem 'pg'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'jquery-rails'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
group :development, :test do
  gem 'byebug', platform: :mri
end
group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
gem 'bootstrap-sass', '~> 3.3.7'
gem 'autoprefixer-rails'
gem 'font-awesome-sass'
gem 'annotate'
gem 'devise'
gem 'rails_admin' 
gem 'carrierwave', '~> 1.0'
gem 'private_pub'
gem 'thin'

尝试解决方案1:

替换

gem 'sqlite3'

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

然后

bundle install 
git add .
git commit -am"Update Gemfile"
git push heroku master

这个解决方案对我不起作用。 Heroku仍尝试安装sqlite3。

尝试解决方案2:

从Gemfile中移除sqlite3并在所有地方使用postgresqldevelopmenttestproduction

所以,我安装了postgres并做了必要的设置,用postgres在本地运行我的项目。它工作正常。

我的database.yml看起来像这样:

development:
  adapter: postgresql
  database: my_database_development
  pool: 5
  timeout: 5000
test:
  adapter: postgresql
  database: my_database_test
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  database: my_database_production
  pool: 5
  timeout: 5000

这个解决方案对我不起作用。 Heroku仍尝试安装sqlite3

尝试解决方案3:

所以,人们建议我有一些依赖于sqlite3的宝石。好吧,在尝试的解决方案2中,我的Gemfile和Gemlock没有sqlite3的痕迹。

Heroku仍尝试安装sqlite3

因此,人们建议显示Gem dependency

这是我的Gem dependency连接到sqlite3

Gem orm_adapter-0.5.0
  activerecord (>= 3.2.15, development)
  bson_ext (>= 1.3.0, development)
  bundler (>= 1.0.0, development)
  datamapper (>= 1.0, development)
  dm-active_model (>= 1.0, development)
  dm-sqlite-adapter (>= 1.0, development)
  git (>= 1.2.5, development)
  mongo_mapper (~> 0.11.0, development)
  mongoid (~> 2.8.0, development)
  rake (>= 0.8.7, development)
  rspec (>= 2.4.0, development)
  sqlite3 (>= 1.3.2, development)  <---
  yard (>= 0.6.0, development)


Gem sass-rails-5.0.6
  railties (< 6, >= 4.0.0)
  sass (~> 3.1)
  sprockets (< 4.0, >= 2.8)
  sprockets-rails (< 4.0, >= 2.0)
  sqlite3 (>= 0, development)   <---
  tilt (< 3, >= 1.1)

现在建议删除那些依赖sqlite3的宝石。 但Devise取决于orm_adapter。那么,我是否也必须删除Devise?这听起来太难看了。然后有sass-rails。 sass-rails表示它只需要在开发环境中使用sqlite3。我被困在这里。

此时,任何新的建议都将受到赞赏。

0 个答案:

没有答案
相关问题