我是Beanstalk的新手。我创建了一个Rails应用程序并设置数据库生产配置以使用AWS希望提供的环境变量。我使用的是Mysql(mysql2 gem),想要使用RDS和Passenger(我没有偏好)。
在我的开发环境中,我可以使用我的本地Mysql运行rails应用程序(它只是我为实验创建的基本应用程序)。 我已将乘客宝石添加到Gemfile并捆绑,但我仍然在开发中使用WEBBrick。
这本书我唯一没做过的就是我没有使用' eb'而是从控制台尝试。我的应用程序/环境无法正常运行" rake db:migrate"它仍然认为我希望它连接到本地Mysql(我想从日志中知道它不知道RACK_ENV因此使用'开发')。
任何提示?我当然可以尝试使用“eb'”,但更愿意使用控制台。
此致 奥伦
答案 0 :(得分:3)
您是否尝试过
bin/rake db:migrate RAILS_ENV=development
? 我遇到了同样的问题,对我有用。
答案 1 :(得分:2)
在Elastic Beanstalk(Web控制台和cli)中,您可以传递环境变量。如果您传递RAKE_ENV
变量,则会更改您的环境。
之后,您仍然需要传递数据库参数(db password,name,...),这些参数不应该硬编码到代码中。
答案 2 :(得分:1)
我建议您通过此命令输入EC2实例&#34; eb ssh &#34; (第一次需要指定 .pem 文件时,如果没有可以在 IAM服务中创建的文件),请检查日志以获取有关您的错误的更多信息。< / p>
如果您在上传代码时遇到问题(eb deploy),您可以登录此文件:&#34; /var/log/eb-activity.log &#34; (请记住此文件位于EC2实例中)
如果您的应用出现问题,可以阅读以下文件中的日志:&#34; /var/app/support/logs/production.log &#34;或&#34; /var/app/support/logs/passenger.log &#34;
其他建议是安装 EB CLI 版本3.以管理您的eb实例
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html
答案 3 :(得分:0)
我相信Elastic Beanstalk会自行运行'rake db:migrate'。事实上它似乎尝试,但那是失败的。我把我的赏金给了'Yahs Hef',尽管我今晚只会尝试(英国)。我对AWS的迷惑导致我忘记了这个简单的解决方案,即自己运行迁移。如果这本身不起作用,我将尽可能地简化数据库配置。