У меня есть приложение sinatra, и я хочу сконфигурировать свои базы данных для разработки, тестирования и производства с файлом database.yaml
.
Добавление этого в мой app.rb
файл и запуск rake db:migrate
работает просто отлично:
configure :development do
set :database, "sqlite3:forum-service.sqlite3"
end
Но я хочу разделить конфигурации базы данных в файле database.yaml
, чтобы сохранить чистотукод.Если я удаляю приведенный выше код и добавляю файл config/database.yaml
, как показано ниже, и запускаю rake db:migrate
, я получаю:
rake aborted!
ActiveRecord::ConnectionNotEstablished: No connection pool with 'primary' found.
мой файл config / database.yaml
development:
adapter: sqlite3
database: db/forum_dev_sqlite3.db
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/forum_test_sqlite3.db
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/forum_prod_sqlite3.db
pool: 5
timeout: 5000
мой Rakefile
require 'sinatra'
require 'sinatra/activerecord'
require 'sinatra/activerecord/rake'
require './app'
require 'rake/testtask'
task :default do
puts 'type \'rake --tasks\' to list options.'
end
Rake::TestTask.new do |t|
#t.pattern = "tests/**.rb"
t.libs << "test"
t.test_files = FileList['tests/unittest.rb'] # test*.rb for all
t.verbose = true
end
в соответствии с документами Sinatra sinatra / database / postgresql-activerecord путем создания файла config/database.yaml
конфигурации загружаются автоматически, но похоже, что чего-то не хватает, чтобы сделатьподключение возможно.Может быть, что-нибудь добавить в мой rakefile для чтения конфигов?
Я видел Sinatra, Puma, ActiveRecord: не найден пул соединений с «первичным» и Sinatra - ActiveRecord ::ConnectionNotEstablished: Нет пула соединений для ActiveRecord :: Base , но они не применяются для этой проблемы.