我正在尝试使用 Render 托管的 Postgresql 数据库在 Render 上运行一个简单的 Sinatra 网络应用程序。我正在关注:https://render.com/docs/deploy-rails#install-rails 但我运行:
bundle exec rake db:migrate
..构建/部署因错误而失败:
ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter
.我试过各种yaml配置都没有结果。
使用 puma 在本地运行,shell 文件可以很好地用于开发和测试数据库。
我可以通过本指南通过 pgadmin 连接到我的数据库:https://medium.com/geekculture/how-to-create-and-connect-to-a-postgresql-database-with-render-and -pgadmin-577b326fd19d
Name: Name
Hostname/address: External Database URL (If the format of the URL is postgres://aaa:[email protected]/ddd then Hostname would be ccc.oregon-postgres.render.com)
Port: Port
Maintenance database: Database
Username: Username
Password: Password
我没有使用蓝图,而是手动/推送部署。 我有 3 个环境变量:
错误
Feb 24 04:15:45 PM ==> Cloning from https://github.com/user/repo...
Feb 24 04:15:46 PM ==> Checking out commit commit in branch main
Feb 24 04:15:50 PM ==> Running build command './bin/render-build.sh'...
Feb 24 04:15:51 PM Fetching gem metadata from https://rubygems.org/........
Feb 24 04:15:51 PM Fetching rake 13.0.6
Feb 24 04:15:51 PM Installing rake 13.0.6
Feb 24 04:15:52 PM Using bundler 2.3.14
Feb 24 04:15:52 PM Fetching ruby2_keywords 0.0.5
Feb 24 04:15:52 PM Fetching zeitwerk 2.6.7
Feb 24 04:15:52 PM Fetching multi_json 1.15.0
Feb 24 04:15:52 PM Fetching nio4r 2.5.8
Feb 24 04:15:52 PM Fetching rack 2.2.6.2
Feb 24 04:15:52 PM Fetching require_all 3.0.0
Feb 24 04:15:52 PM Fetching tilt 2.1.0
Feb 24 04:15:52 PM Fetching concurrent-ruby 1.2.0
Feb 24 04:15:52 PM Fetching minitest 5.17.0
Feb 24 04:15:52 PM Fetching json 2.6.3
Feb 24 04:15:52 PM Fetching jwt 2.7.0
Feb 24 04:15:52 PM Fetching moji 1.6
Feb 24 04:15:52 PM Fetching pg 1.4.5
Feb 24 04:15:52 PM Installing multi_json 1.15.0
Feb 24 04:15:52 PM Installing require_all 3.0.0
Feb 24 04:15:52 PM Installing ruby2_keywords 0.0.5
Feb 24 04:15:52 PM Installing tilt 2.1.0
Feb 24 04:15:52 PM Installing zeitwerk 2.6.7
Feb 24 04:15:52 PM Installing jwt 2.7.0
Feb 24 04:15:52 PM Installing json 2.6.3 with native extensions
Feb 24 04:15:52 PM Installing minitest 5.17.0
Feb 24 04:15:52 PM Installing nio4r 2.5.8 with native extensions
Feb 24 04:15:52 PM Installing rack 2.2.6.2
Feb 24 04:15:52 PM Installing pg 1.4.5 with native extensions
Feb 24 04:15:52 PM Installing concurrent-ruby 1.2.0
Feb 24 04:15:52 PM Installing moji 1.6
Feb 24 04:15:52 PM Fetching mustermann 3.0.0
Feb 24 04:15:52 PM Fetching mojinizer 0.2.2
Feb 24 04:15:52 PM Installing mustermann 3.0.0
Feb 24 04:15:52 PM Installing mojinizer 0.2.2
Feb 24 04:15:56 PM Fetching rack-protection 3.0.5
Feb 24 04:15:56 PM Installing rack-protection 3.0.5
Feb 24 04:16:03 PM Fetching i18n 1.12.0
Feb 24 04:16:03 PM Fetching tzinfo 2.0.6
Feb 24 04:16:03 PM Installing i18n 1.12.0
Feb 24 04:16:03 PM Installing tzinfo 2.0.6
Feb 24 04:16:04 PM Fetching puma 6.1.0
Feb 24 04:16:04 PM Fetching sinatra 3.0.5
Feb 24 04:16:04 PM Fetching activesupport 6.1.7.2
Feb 24 04:16:04 PM Installing sinatra 3.0.5
Feb 24 04:16:04 PM Installing puma 6.1.0 with native extensions
Feb 24 04:16:04 PM Installing activesupport 6.1.7.2
Feb 24 04:16:04 PM Fetching sinatra-contrib 3.0.5
Feb 24 04:16:04 PM Installing sinatra-contrib 3.0.5
Feb 24 04:16:08 PM Fetching activemodel 6.1.7.2
Feb 24 04:16:08 PM Installing activemodel 6.1.7.2
Feb 24 04:16:08 PM Fetching activerecord 6.1.7.2
Feb 24 04:16:08 PM Installing activerecord 6.1.7.2
Feb 24 04:16:08 PM Fetching sinatra-activerecord 2.0.26
Feb 24 04:16:08 PM Installing sinatra-activerecord 2.0.26
Feb 24 04:16:08 PM Bundle complete! 10 Gemfile dependencies, 27 gems now installed.
Feb 24 04:16:08 PM Gems in the groups 'development' and 'test' were not installed.
Feb 24 04:16:08 PM Bundled gems are installed into `/opt/render/project/.gems`
Feb 24 04:16:09 PM rake aborted!
Feb 24 04:16:09 PM ActiveRecord::AdapterNotSpecified: database configuration does not specify adapter
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/activerecord-6.1.7.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:1198:in `resolve_pool_config'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/activerecord-6.1.7.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:1046:in `establish_connection'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/activerecord-6.1.7.2/lib/active_record/connection_handling.rb:52:in `establish_connection'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-activerecord-2.0.26/lib/sinatra/activerecord.rb:83:in `database='
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-3.0.5/lib/sinatra/base.rb:1283:in `set'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-activerecord-2.0.26/lib/sinatra/activerecord.rb:48:in `registered'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-3.0.5/lib/sinatra/base.rb:1475:in `block in register'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-3.0.5/lib/sinatra/base.rb:1473:in `each'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-3.0.5/lib/sinatra/base.rb:1473:in `register'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-3.0.5/lib/sinatra/base.rb:1959:in `register'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-3.0.5/lib/sinatra/base.rb:2024:in `register'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-activerecord-2.0.26/lib/sinatra/activerecord.rb:101:in `<module:Sinatra>'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/sinatra-activerecord-2.0.26/lib/sinatra/activerecord.rb:12:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:73:in `require'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:73:in `rescue in block in require'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:51:in `block in require'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:44:in `each'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:44:in `require'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler.rb:176:in `require'
Feb 24 04:16:09 PM /opt/render/project/src/config/environment.rb:5:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/src/Rakefile:3:in `require_relative'
Feb 24 04:16:09 PM /opt/render/project/src/Rakefile:3:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:58:in `load'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:58:in `kernel_load'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:23:in `run'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli.rb:483:in `exec'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli.rb:31:in `dispatch'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli.rb:25:in `start'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/exe/bundle:48:in `block in <top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/exe/bundle:36:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/bin/bundle:113:in `load'
Feb 24 04:16:09 PM /opt/render/project/.gems/bin/bundle:113:in `<main>'
Feb 24 04:16:09 PM
Feb 24 04:16:09 PM Caused by:
Feb 24 04:16:09 PM LoadError: cannot load such file -- sinatra-activerecord
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:60:in `require'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:60:in `block (2 levels) in require'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:55:in `each'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:55:in `block in require'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:44:in `each'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/runtime.rb:44:in `require'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler.rb:176:in `require'
Feb 24 04:16:09 PM /opt/render/project/src/config/environment.rb:5:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/src/Rakefile:3:in `require_relative'
Feb 24 04:16:09 PM /opt/render/project/src/Rakefile:3:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/ruby/2.6.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:58:in `load'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:58:in `kernel_load'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli/exec.rb:23:in `run'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli.rb:483:in `exec'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli.rb:31:in `dispatch'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/cli.rb:25:in `start'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/exe/bundle:48:in `block in <top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/lib/bundler/friendly_errors.rb:103:in `with_friendly_errors'
Feb 24 04:16:09 PM /opt/render/project/.gems/gems/bundler-2.3.14/exe/bundle:36:in `<top (required)>'
Feb 24 04:16:09 PM /opt/render/project/.gems/bin/bundle:113:in `load'
Feb 24 04:16:09 PM /opt/render/project/.gems/bin/bundle:113:in `<main>'
Feb 24 04:16:09 PM (See full trace by running task with --trace)
Feb 24 04:16:09 PM ==> Build failed 😞
Feb 24 04:16:09 PM ==> Generating container image from build. This may take a few minutes...
数据库.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: db_name_dev
test:
<<: *default
database: db_name_test
production:
<<: *default
database: db_name
username: user_name
url: <%= ENV['DATABASE_URL'] %>
bin/render-build.sh
#!/usr/bin/env bash
# exit on error
set -o errexit
bundle install
bundle exec rake db:migrate
config.ru
require_relative './config/environment'
run ApplicationController
application_controller.rb
require 'sinatra'
require 'sinatra/reloader'
require "sinatra/activerecord"
class ApplicationController < Sinatra::Base
get '/' do
"Hello World"
end
end
RakeFile
ENV["SINATRA_ENV"] ||= "development"
require_relative './config/environment'
require 'sinatra/activerecord'
require 'sinatra/activerecord/rake'
require './app'
我是一个divvy.
我设法通过添加额外的环境变量来解决这个问题:
SINATRA_ENV
RACK_ENV