LoginSignup
5
5

More than 5 years have passed since last update.

Parseの移行検証: DB切り替え(mLab)

Last updated at Posted at 2016-04-04

概要

Parseの移行を実際にリリースしているアプリで検証してみようと思います。
今回の検証は「データベースのmLabへの移行」となります。
検証終了後、データベース以外はParseで動き続けます。Parse Serverの移行も後日検証するのですが、既によい投稿があるようですので、私も投稿するかは未定です。。。

想定移行パターン

想定する移行パターンは、データベースをmLab, Parse ServerをHerokuが担当する移行パターンです。Parseが推奨する移行パターンのうちの1つとなります。
今回の検証対象はデータベースのみの移行で、移行先はmLabとなります。
mLabへ移行するパターンも少なくとも2つの方法があります。

  1. HerokuからmLabをアドオンして移行
  2. Herokuを使わずに(Herokuにアカウントがなくても)mLabに移行

今回はHerokuを使わない方法でして、こちらもParseが想定するやり方の1つとなります。
「とにかくデータベースは移行する!」「サーバーの移行先はまだ確定したくない!」場合は、こちらの方法の方がよいかと思います。

  • mLab + Heroku移行パターン
データベース サーバー 補足
Mongo DB Parse Server mLabは旧Mongo Lab

また、検証に使う人柱的アプリはnicomeというiPhoneアプリとなります。
Parseの利用が限定的で、移行時に問題が発生してもあまり影響を受けないアプリです。ニコニコ動画のプレーヤー的暇つぶしアプリなのですが、DL数がないに等しい(2016/3/24現在)ので、せめてここで活躍させてあげようかと...

  • アプリのParseの利用範囲
Parseの機能 アプリでの用途 補足 
ユーザー管理 ニコニコ動画ユーザーと連動 個人開発者はニコニコOAuthシステムを使えないので、ParseのUserを使っている。
カスタムオブジェクト アプリ情報のバックアップ データベースとして利用

事前作業

  • mLabへサインアップ&ログイン

移行作業: mLabの準備

Qiitaへの投稿は今回が初めてでして、ファイルのアップロードサイズの上限(2M)があるため、画像のアップロードがあまりできません。1度投稿すると上限が大幅に増えるようですので、不足画像の挿入は後日致します。

  1. ダッシュボードにて"Create new"をクリックする。
    mLabへ移行01.jpg

  2. 以下のように選択。データベースに名前を付けて、"Create new MongoDB deployment"をクリック
    ここでは無料のサンドボックスを選択している。
    mLabへ移行02.png

  3. 成功したメッセージとともに、データベースが出来ていることを確認。そのデータベースをダブルクリックする。
    mLabへ移行03.png

  4. データベースユーザーが必要だよ!という英語のメッセージが出ているので、Click hereをクリックする。
    mLabへ移行04.png

  5. "Add new database user"というポップアップ画面が出てくるので、usernameとpasswordを入力して"Create"ボタンをクリックする。※Make read-onlyはチェックしない。
    mLabへ移行05.png

  6. Database Usersに、データベースユーザー名が作成されていることを確認する。
    mLabへ移行05_2.png

  7. "To connect using a driver via the standard MongoDB URI:"以下の1行をコピーする。尚、コピーした文字列の<dbuser>の部分は先ほど作成したデータベースユーザー名を、<dbpassword>にはそのパスワードを入れて使用することになる。
    mLabへ移行06.png

ここまででmLab側の準備が整いました!

移行作業:Parseでの移行作業

  1. Parseにログインして、ダッシュボードを開いておく。(新しい方のダッシュボード)
  2. サイドメニューの"App Settings"をクリックする。もし"General"が選択されていない場合は"General"をクリックする。
    parseからmLab01.png

  3. 少し下にスクロールすると、"App Management"があるのでそこまでスクロールする。
    parseからmLab03.png

  4. "Migrate to external database"の、"Migrate"ボタンをクリックして、移行作業を開始する。

  5. すると"Migrate app"というタイトルのポップアップウインドウが表示され、データベースへのconnection stringを聞いてくる。

  6. ここに、mLabの準備でコピーしておいた文字列をペーストし、<dbuser>と<dbpassword>もデータベースユーザー名とそのパスワードを指定する。
    parseからmLab04.png

  7. 準備が出来たら、"Begin the migration"ボタンをクリックする。

  8. 移行作業が開始されると、"Copy Snapshot", "Sync", "Verify"という3つのステップの状態が表示される。
    parseからmLab07.png

  9. "Sync"が終了(チェックマークが入り、色がグリーンになる)するまで待つ。相応の時間がかかるので、別の事をするか休憩する...
    parseからmLab08.png

  10. "Sync"が終了したら、とりあえず、「何もしない!」

    表示されているボタンはまだ押さない!

    "Sync"終了時点で既に、移行が終了し、mLabが使われている状態となっている。ただ、Parseのデータベースの方も使用されている状態で、2重に管理されている。

  11. アプリケーションをテストし、mLabとの連携がうまくいっていることを確認する。

  12. 問題なければ、"Finalize"ボタンをクリックする。(キャンセルしたい場合は、"Stop the migration"ボタン)

    Finalizeすると、Parse側のデータベースは使用せず、mLabのみ使用するようになり、移行終了!

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5