我正在尝试将PostgreSQL而不是SQLite3用于我的Rails应用程序,因为Heroku需要PostgreSQL,我想部署应用程序。使用Postgres标志启动我的应用程序(即--databse=postgresql
)工作正常。但是,在将gem twitter-boostrap-rails
添加到Gemfile
并运行bundle install
后,我收到有关SQLite3的错误:
active_record/connection_adapters/connection_specification.rb:190:in
rescue in spec': Specified 'sqlite3' for database adapter, but the gem is not loaded. Add
gem'sqlite3'`到您的Gemfile(并确保它的 版本是ActiveRecord所要求的最低值)
这是我的Gemfile
:
source 'https://rubygems.org'
gem "therubyracer"
gem "less-rails"
gem "twitter-bootstrap-rails"
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.4'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/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.
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
# Spring speeds up development by keeping your application running in the background.
gem 'spring', group: :development
# 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
# Use debugger
# gem 'debugger', group: [:development, :test]
gem 'rails_12factor', group: :production>
这是我的database.yml
:
----------
# PostgreSQL. Versions 8.2 and up are supported.
#
# Install the pg driver:
# gem install pg
# On OS X with Homebrew:
# gem install pg -- --with-pg-config=/usr/local/bin/pg_config
# On OS X with MacPorts:
# gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
# gem install pg
# Choose the win32 build.
# Install PostgreSQL and put its /bin directory on your path.
#
# Configure Using Gemfile
# gem 'pg'
#
default: &default
adapter: postgresql
encoding: unicode
# For details on connection pooling, see rails configuration guide
# http://guides.rubyonrails.org/configuring.html#database-pooling
pool: 5
development:
<<: *default
为什么我收到此错误,如何解决问题?
答案 0 :(得分:2)
尝试设置数据库配置以进行开发显式。看起来database.yml没有正确对齐。
development:
adapter: postgresql
encoding: utf8
database: your_db
host: 127.0.0.1
pool: 5
username: your_db_username
password: your_db_password
答案 1 :(得分:1)
尝试运行bundle update
然后bundle exec rails s
- 您还需要在您的database.yml中指定更多参数,例如您的主机等,应该看起来像这样:
development:
adapter: postgresql
encoding: unicode
database: some_database_name
pool: 5
host: localhost
username: your_username (or root) if just dev
password: your_password
请记住,因为这都是开发人员,用户名/ pw的安全性并不重要,因为它不包含任何重要数据/无法在您的计算机外访问