rake db:migrate在开发AWS Beanstalk中运行

时间:2015-05-31 16:15:03

标签: mysql ruby-on-rails amazon-web-services elastic-beanstalk environment

我是Beanstalk的新手。我创建了一个Rails应用程序并设置数据库生产配置以使用AWS希望提供的环境变量。我使用的是Mysql(mysql2 gem),想要使用RDS和Passenger(我没有偏好)。

在我的开发环境中,我可以使用我的本地Mysql运行rails应用程序(它只是我为实验创建的基本应用程序)。 我已将乘客宝石添加到Gemfile并捆绑,但我仍然在开发中使用WEBBrick。

这本书我唯一没做过的就是我没有使用' eb'而是从控制台尝试。我的应用程序/环境无法正常运行" rake db:migrate"它仍然认为我希望它连接到本地Mysql(我想从日志中知道它不知道RACK_ENV因此使用'开发')。

任何提示?我当然可以尝试使用“eb'”,但更愿意使用控制台。

此致 奥伦

4 个答案:

答案 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的迷惑导致我忘记了这个简单的解决方案,即自己运行迁移。如果这本身不起作用,我将尽可能地简化数据库配置。