Sinatra 应用在 db:migrate 上使用 database.yaml 提高了 "ActiveRecord::ConnectionNotEstablished: No connection pool with 'primary' found."
Sinatra app raises "ActiveRecord::ConnectionNotEstablished: No connection pool with 'primary' found." on db:migrate using database.yaml
我有一个 sinatra 应用程序,我想使用 database.yaml
文件配置我的开发、测试和生产数据库。
将此添加到我的 app.rb
文件中 运行ning 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/databases/postgresql-activerecord,通过制作 config/database.yaml
文件,配置会自动加载,但看起来好像缺少某些东西无法建立连接。也许在我的 rakefile 中添加一些东西来读取配置?
我看过Sinatra, Puma, ActiveRecord: No connection pool with 'primary' found and Sinatra - ActiveRecord::ConnectionNotEstablished: No connection pool for ActiveRecord::Base但是他们没有申请这个问题
sinatra-activerecord 默认在 config/database.yml(不是 yaml)中查找。您可以使用 :database_file
配置选项更改为任何其他路径。
set :database_file, 'config/database.yaml'
我有一个 sinatra 应用程序,我想使用 database.yaml
文件配置我的开发、测试和生产数据库。
将此添加到我的 app.rb
文件中 运行ning 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/databases/postgresql-activerecord,通过制作 config/database.yaml
文件,配置会自动加载,但看起来好像缺少某些东西无法建立连接。也许在我的 rakefile 中添加一些东西来读取配置?
我看过Sinatra, Puma, ActiveRecord: No connection pool with 'primary' found and Sinatra - ActiveRecord::ConnectionNotEstablished: No connection pool for ActiveRecord::Base但是他们没有申请这个问题
sinatra-activerecord 默认在 config/database.yml(不是 yaml)中查找。您可以使用 :database_file
配置选项更改为任何其他路径。
set :database_file, 'config/database.yaml'