由于Heroku上的MongoDB附加组件mLab即将停止,这是迁移到另一个免费的MongoDB服务的时候的备忘录
总结
以下是关于如何迁移至后续可免费使用的MongoDB服务(MongoDB Atlas),由于Heroku上免费提供的MongoDB附加组件mLab将停止服务。
画面操作手续繁多,为节省篇幅已省略部分步骤,希望对迁移时能提供参考。
背景
我在Heroku上使用免费计划来构建了用Rails开发的个人兴趣网站(※),并且在其中使用了mLab附加组件,这个组件允许免费使用MongoDB。虽然在免费计划中有一些容量和其他限制,但对于小规模使用来说,这种限制并没有问题。
※创建的网站:骏河部
然而,大约在7月11日左右,收到了下面这样的电子邮件。

总结一下,2020年11月10日,mLab的MongoDB附加组件将被删除,无法再使用。
詳細は下記に記載されていますが、mLab自体がMongoDB本体の会社(MongoDB Inc)に買収されたことに伴い、そちらのクラウドサービス(MongoDB Atlas)に統合されるためのようです。
参考
幸いにもサービス停止に伴い、MongoDB Atlas側へ無料利用可能なプラン(512MBまで利用可能)へのマイグレーション方法が案内されており、今回はそちらのプランへのマイグレーションを実施した際の記録になります。
手順
MongoDBの対応バージョンの確認
mLabで動いていたMongoDBのバージョンは3.6ですが、MongoDB Atlasは4.2となるため、使用しているmongoidやrubyのバージョンに注意が必要です。
今回私の場合には4.2に対応しているバージョンを使用しており、幸いにも対応は不要でした。
バージョン等の対応に関しては下記が参考になります。
参考
创建账户

创建集群 un Cluster)
登录后,选择“创建集群”。

选择免费计划。


如果能成功创建Cluster,就算完成了。

与mLab账户的连接
点击屏幕左上角的齿轮图标。

由于有类似连接到mLab的选项,选择右侧的按钮。


如果您不知道mLab帐户,请先登录Heroku,然后选择使用mLab的应用程序中的Addons中的mLab进行登录,然后在上述登录界面中重新加载即可登录。


返回到Atras的屏幕,如果显示mLab Account的画面,则表示连接已成功完成。

迁移设置
在mLab账户界面上,选择”Actions” → “…” → “配置迁移”。




請勾選「Allow ~」的核取方塊,然後選擇右下方的按鈕。

选择创建的Cluster,然后点击右下角的按钮。


进行迁移
选择“迁移部署”中的“确认”选项。

请点击“确认并继续”。






因为迁移开始了,所以请稍等。
等待一段时间后,选择“开始使用Atlas”即可完成。


如果您在使用Heroku的环境变量,请按照以下方式将环境变量替换为新的数值:
heroku config:set 环境变量名称=”上述连接URL”
应用程序的启动
如果停止了Heroku应用程序,请重新启动它。
请确认MongoDB使用的功能是否正常运行。
最終結果
请删除Heroku上的mLab附加组件。
根据下面的内容,建议您提前进行备份,具体操作可自行决定。
https://docs.mlab.com/backups/#retention-policies
另外,当删除mLab时,自动添加的MONGODB_URI和MONGOLAB_URI等环境变量将被删除,因此建议使用heroku config等命令将环境变量的值输出并备份。


以上是Heroku端删除mLab的操作已经完成。
为了保险起见,让我们尝试验证一下使用MongoDB的功能是否正常运行。
总结
我在Heroku上的mLab MongoDB附加组件停止后,介绍了切换到替代服务MongoDB Atlas的方法备忘录。
尽管过程繁琐,但是成功进行迁移后我松了一口气。