当我使用heroku打开我的web应用程序工作正常,但当我使用rails s(localhost)时,我遇到了这个错误:
ActiveRecord::AdapterNotSpecified database configuration does not specify adapter
这是为什么呢?
这是我的数据库。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
这是我的gemfile:
source 'https://rubygems.org'
gem 'pg'
gem 'bootstrap-sass', '~> 3.1.1'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'
# 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. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
group :production do
gem 'rails_12factor', '0.0.2'
end
# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.1.2'
# Use unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano', group: :development
# Use debugger
# gem 'debugger', group: [:development, :test]
8条答案
按热度按时间ylamdve61#
要使您的应用在本地工作,您需要:
my_app_development
)1.将
database.yml
更改为:1.运行
rake db:migrate
bvjxkvbb2#
您没有显示导致此查询的命令,但如果传递的是字符串而不是符号,则可能会发生这种情况。
例如:
但是如果你使用一个符号,它就会起作用。
kxeu7u2r3#
你的数据库。yml应该看起来像这样:
将development_database_name编辑为本地数据库名称。同时将my_username和my_password编辑为正确的数据库用户名和密码。
noj0wjuj4#
删除标签没有更多,识别完美,如:
uqzxnwby5#
如果你试图使用activerecord而不使用rails,你可能会遇到这个数据库问题。yml与多个环境设置。所以你需要像这样把环境键传递到配置设置中:
nwlqm0z16#
为什么在
database.yml
中使用yml node reference?你应该有这样的东西:
更新
Rails使用数据库运行。您必须连接到数据库才能使其工作,为此,您必须在
database.yml
中定义不同的连接细节。要定义正确的信息,您需要了解Rails在几种
environments
中运行-development
和production
是最常用的两种要让Rails在本地(开发)环境中工作,您需要定义正确的数据库细节。这意味着您需要连接到一个数据库-通常是通过setting up a local mysql / pgsql server完成的
底线是你连接到一个数据库使用:
您需要在
config/database.yml
文件中定义这些如果在本地环境中运行服务器,则数据库。yml文件看起来像这样:
zyfwsgd67#
在我的情况下,原因在我的Rakefile中。
当我运行
rake db:migrate
时,我得到了这个:我在Rakefile中找到了这一行:
ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'])
并更改为默认值:
ActiveRecord::Base.establish_connection(ENV['DATABASE_URL'] || 'postgres://localhost/db_name')
现在一切正常详细信息here
5n0oy7gb8#
如果您尝试使用Active Record而不使用Rails(例如,如果您使用Sinatra,并且您正在使用
sinatra-activerecord
),请将以下内容添加到Rakefile
: