【问题标题】:rake db:migrate runs in development AWS Beanstalkrake db:migrate 在开发 AWS Beanstalk 中运行
【发布时间】:2015-08-14 02:13:29
【问题描述】:

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

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

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

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

问候, 奥伦

【问题讨论】:

  • 我也尝试过在 .ebextensions 下的 'myapp,config' 中使用 'eb' 以及 'RACK_ENV' 和 'RAILS_ENV'。我真的很困惑。没那么难,现在每个人都在使用 AWS,不是吗?

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


【解决方案1】:

我相信 Elastic Beanstalk 会自行运行“rake db:migrate”。确实,它似乎在尝试,但这是失败的。我把我的赏金给了'Yahs Hef',尽管我只会在今晚(英国)尝试。我对 AWS 的迷失使我忘记了这个简单的解决方案,即自己运行迁移。如果这本身不起作用,我将尽可能简化数据库配置。

【讨论】:

  • 它有效。这是我的愚蠢。一旦我尝试自己运行迁移,我意识到我在 '
【解决方案2】:

我建议你通过这个命令“eb ssh”进入EC2实例(第一次你需要指定你的.pem文件,如果你没有你可以在 IAM 服务 中创建)并检查您的日志以获取有关您的错误的更多信息。

如果您在上传代码(eb deploy)时遇到问题,您可以在此文件中找到日志:“/var/log/eb-activity.log”(请记住此文件位于您的 EC2 实例)

如果您的应用有问题,您可以阅读以下文件中的日志:“/var/app/support/logs/production.log”或“/var/ app/support/logs/passenger.log"

其他建议是安装 EB CLI 第 3 版。用于管理您的 eb 实例

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install.html

【讨论】:

    【解决方案3】:

    你试过跑步吗

        bin/rake db:migrate RAILS_ENV=development
    

    ? 我遇到了同样的问题,这对我有用。

    【讨论】:

    • 不确定我是否关注。在哪里运行这个?为什么要开发?
    • 在你的 cmd 和开发中,因为它是一个发展中的环境
    【解决方案4】:

    在 Elastic Beanstalk(Web 控制台和 cli)中,您可以传递环境变量。如果您传递RAKE_ENV 变量,您将更改您的环境。

    之后,您仍然需要传递不应硬编码到代码中的数据库参数(数据库密码、名称、...)。

    猜你喜欢
    • 2014-12-26
    • 1970-01-01
    • 2011-07-14
    • 2014-03-21
    • 2011-10-31
    • 2013-03-08
    • 2017-07-30
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多