トップ 最新

ただのにっき

2020-11-08(日) [長年日記]

MongoDBを(ようやく)mLabからAtlasへ移行

Heroku上で長らくMongoDBのadd-onを提供してくれていたmLabがサービスをやめるという案内が来たのはもう何ヵ月も前だったと思うが、転職活動中ということもあってなかなか手をつけられなくて、そうこうするうちにサ終まであと3日なんてことになってしまった。なんで年休消化中にやらなかったんだ、おれ。

移行先はMongoDB社じきじきに提供しているサービスAtlas。もはやこんな時期なので移転Howto的な記事を書くのは意味ないし(ググればいくらでも出てきます)、ちゃんと移転したぞ、という記録としての意義しかないね。

mLab社はMongoDBに買収されたんだから、もうちょっと楽な移行手段は用意できなかったんかい! とツッコミたくなるほど手間がかかる。考えてみればDB移行なんてどんなサービスでも一大事業なんだから、それを10個以上(Stagingなんかも含めればその倍)のサービスで週末の夜だけを使って実行するなんてだいぶバカである。

ある程度は自動化したものの、動作確認やらなんやらはしなきゃいけないし、マウスぽちぽちと目視確認はなくせなくてつらかった。あとMongoは3.xの頃から使ってるから、知識のアップデートが足りてなかったのを知れたのは良かったな。mongodumpやmongorestoreがURLを受け付けるようになっていたのは知らなかった。おかげで作業がだいぶ楽になった。

あと4.x以降、databaseのrenameやコピーができなくなっていたので、dump + restoreでやるしかなかった。なんでコピーがしたかったかというと、移行ツールを使うとdatabase名がHerokuで自動生成された「heroku_xxxxxxx」みたいな名前になってしまって、あとで困るからなんだな。なのでdumpしてから意味のある名前でrestoreするという作業を入れた(もちろん自動化した)。

というわけで、この日記を含めたtDiary.Netのアクティブな日記群、宅配トラッカー、(来るべきシーズンを待っている)グラコロ同盟など、すべてのサービスをAtlasへ移行完了。ちゃんとやりきった自分をほめてやりたい。