Ruby on rails 数据库适配器出现Rails aws elastic beanstalk部署错误

Ruby on rails 数据库适配器出现Rails aws elastic beanstalk部署错误,ruby-on-rails,postgresql,sqlite,rubygems,amazon-elastic-beanstalk,Ruby On Rails,Postgresql,Sqlite,Rubygems,Amazon Elastic Beanstalk,在本文的指导下,我试图将我的rails应用程序部署到aws elastic beanstalk 在开始“将PostgreSQL与Rails一起使用”部分之前,我没有遇到任何问题 在这一部分中,我遵循了gemfile修改,它将postgresqlgem添加到生产组,并将sqlite3gem移动到开发和测试组,就像我对其他rails应用程序所做的那样 像这样 group :development, :test do # Before insert this group, sqlite3 ge

在本文的指导下,我试图将我的rails应用程序部署到aws elastic beanstalk

在开始“将PostgreSQL与Rails一起使用”部分之前,我没有遇到任何问题

在这一部分中,我遵循了gemfile修改,它将postgresqlgem添加到生产组,并将sqlite3gem移动到开发和测试组,就像我对其他rails应用程序所做的那样

像这样

group :development, :test do
   # Before insert this group, sqlite3 gem code is in the default group. (Outside of development group)
   gem 'sqlite3', '~> 1.3.10' 
   ...other gems...
end
group :production do
   gem 'pg', '~> 0.18.1'
end
然后,我安装了
$bundle
$git commit
,以及
$eb deploy
。但在这一次,EBS会在下面的消息中出错

错误:[实例:i-80ee5327]命令在实例上失败。返回代码: 1输出:(截断)…sqlite3'`到您的Gemfile(并确保其 版本为ActiveRecord所需的最低版本)

Gem::LoadError:sqlite3不是捆绑包的一部分。将其添加到文件中

Tasks:TOP=>db:migrate=>db:load\u config(通过运行 使用--trace)执行任务

Hook/opt/elasticbeanstalk/hooks/appdeploy/pre/12_db_migration.sh 失败。有关更多详细信息,请使用console检查/var/log/eb-activity.log 或EB CLI

信息:所有实例上的命令执行已完成。总结: [成功:0,失败:1]

错误:对实例id“i-80ee5327”执行命令失败。 正在中止操作

错误:未能部署应用程序

通过读取错误消息,我发现aws实例没有加载sqlite3 gem,所以我将sqlite3 gem代码发布到开发组之外

gem 'sqlite3', '~> 1.3.10' 

group :development, :test do
   ...other gems...
end
group :production do
   gem 'pg', '~> 0.18.1'
end
在此之后,
$eb deploy
命令运行良好,服务器工作正常

所以,我的问题是。。。为什么会出现这个问题

在我看来,若我将gemfile制作成第二个版本,那个么sqlite3适配器将在默认环境下加载,并且应该在生产环境中崩溃。但结果与我完全相反。这是一个非常恼人的情况,更重要的是,我怀疑我是否做了正确的解决方案

请帮帮我

这是我当前的环境变量

 RACK_ENV = development 
 SECRET_KEY_BASE = **********
 RAILS_SKIP_MIGRATIONS = false 
 RAILS_SKIP_ASSET_COMPILATION = false
 BUNDLE_WITHOUT = test:development

看起来您正在开发模式下运行beanstalk服务器。确保在beanstalk中设置了以下环境变量:

RAILS_ENV=production
RACK_ENV=production

config/database.yml中有什么?可以删除吗“@jae555我在修改代码并解释它的过程中被扭曲了。在我写了这个问题之后,我不断地与其他安装错误作斗争,现在我完全失败了。这是一个令人恼火的情况,但我还是忍无可忍。。。。谢谢,问题解决了!您的解决方案非常有效。顺便问一下,RAILS_ENV和RACK_ENV有什么区别?我没有看到任何关于配置RAILS_ENV的文章。我认为RACK_ENV与rails环境有关,但rails_ENV是正确的。@casamia如果答案正确并对您有所帮助,请接受它,以便其他人也可以更自信地使用它。