使用 Ruby on rails Elastic Beanstalk 将 RDS 迁移到 Aurora MySQL

Posted

技术标签:

【中文标题】使用 Ruby on rails Elastic Beanstalk 将 RDS 迁移到 Aurora MySQL【英文标题】:Migrate RDS to Aurora MySQL with Ruby on rails Elastic Beanstalk 【发布时间】:2020-10-10 23:46:12 【问题描述】:

我在 Elastic Beanstalk 上使用 mysql RDS 有一个 Ruby On Rails 应用程序,我想将它迁移到 Aurora MySQL,我可以迁移我的数据库并且我有 Aurora MySQL 的新端点,我首先尝试在我的开发环境检查一切是否正常,但是当我尝试在生产中部署时,弹性beantalk“12_db_migration.sh failed.”出现错误,但它没有意义,因为我在开发中连接了数据库并且它有效,看起来如果弹性 beantalk 无法连接到数据库,则所有凭据都是正确的。没有挂起的迁移,并且错误消息没有意义。重要的是我之前的 MySQL 版本是 5.7.24,我新的 Aurora MySQL 数据库的 MySQL 版本是 5.7.12,但我认为这并不重要,因为在开发中运行良好。

谢谢。

【问题讨论】:

当您收到 elastic beanstalk 报告的错误时指出“12_db_migration.sh failed”。它给了你什么失败的理由?检查您的日志文件,也许那里有线索 谢谢,这是错误:'/opt/rubies/ruby-2.5.1/bin/rake db:migrate' 中的错误:malloc():内存损坏:0x00005643b34ce420'跨度> 听起来在用于运行迁移的环境中没有足够的可用内存。所以也许你应该用更大的内存分配再试一次。你准备了多少内存? 在我有 3.6Gb 可用的情况下,我总共有 8Gb。 嗯!这不是很多,也许只是为了运行迁移而达到 10gb。之后您可以随时将其放下,但我倾向于在生产中使用至少 10gb,但您至少需要将其翻倍并重试。 【参考方案1】:

好的,我可以修复它,问题是我在 database.yml 文件中写入了我的凭据而没有使用环境变量,我正在测试一些东西但我没有使用环境变量,看起来我不能这样做,我在文件中使用环境变量,一切正常。

【讨论】:

以上是关于使用 Ruby on rails Elastic Beanstalk 将 RDS 迁移到 Aurora MySQL的主要内容,如果未能解决你的问题,请参考以下文章

启动 Ruby on Rails 应用程序时无法通过 AWS Elastic Beanstalk“恭喜”屏幕

在 Elastic Beanstalk 环境上部署 ruby​​ on rails 应用程序时出现 AWS 数据库迁移错误

部署 Ruby on Rails 6 - AWS Elastic Beanstalk - Docker: ArgumentError: Missing `secret_key_base`

使用 Ruby 2.0、Rails 4.1、nginx 更改 Elastic Beanstalk 的文件大小限制

使用 Elastic Beanstalk 在 Amazon AWS 上为非 Rails ruby​​ 脚本安装 Gems

创建 AWS Elastic Beanstalk Ruby/Rails 应用程序环境 [AWS 免费套餐] 时使用了哪些 AWS 资源/服务?