我正在尝试将我的应用推送到heroku。我在终端中收到错误说:安装sqlite3(1.3.11)时出错,而Bundler无法继续。此外,确保gem install sqlite3 -v '1.3.11'
在捆绑之前成功。我一直在阅读很多关于sqlite2和pg的内容,但似乎无法弄清楚如何将它集成到我的gemfile中。谢谢。
这是我的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'
端
由于
答案 0 :(得分:4)
SQLite是一种启动项目的好方法,在本地计算机上处理小型数据集时效果很好。另一方面,Heroku需要比SQLite提供的更多。当使用Heroku和Rails时,他们更喜欢使用PostgreSQL。查看他们关于SQLite和PostgreSQL的文档
https://devcenter.heroku.com/articles/sqlite3
切换到PG数据库需要的工作量比原来使用它的应用程序要多一些,但这并非不可能。上面的链接有一些步骤可以帮助您将SQLite切换到PostgreSQL。
Heroku为他们的Rails集成提供了很棒的文档。如果您需要更多信息,请查看https://devcenter.heroku.com/categories/ruby
答案 1 :(得分:2)
在你的项目中使用sqlite3只是你的gemfile下面的行:
gem 'sqlite3'
使用postgres作为数据库添加:
gem 'pg'
请记得在您的系统上安装postgres软件包,如果您使用的是ubuntu,它应该是:
sudo apt-get install postgres libpq-dev
答案 2 :(得分:0)
要解决此问题,您可以在Gemfile中使用生产和测试分组
即
group :production do
gem 'pg'
end
group :development, :test do
gem 'sqlite3'
gem 'byebug'
gem 'other-gems'
end
如果您没有使用Heroku设置暂存环境,则在部署时,PostgreSQL(pg)将成为默认数据库设置。允许您继续使用您已经完成的任何操作并在生产中使用PostgreSQL。