rake db:migrate 在开发 AWS Beanstalk 中运行
Posted
技术标签:
【中文标题】rake db:migrate 在开发 AWS Beanstalk 中运行【英文标题】:rake db:migrate runs in development 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,不是吗? 【参考方案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
变量,您将更改您的环境。
之后,您仍然需要传递不应硬编码到代码中的数据库参数(数据库密码、名称、...)。
【讨论】:
***.com/questions/7304576/…以上是关于rake db:migrate 在开发 AWS Beanstalk 中运行的主要内容,如果未能解决你的问题,请参考以下文章
markdown rake db:reset,rake db:migrate:resetの违い
在 Heroku 上执行 rake db:migrate 时出错