データ移行スクリプト実行手順
最終更新
ニフクラmobile backendからFirebase Firestoreにデータを移行するためのスクリプトを実行する手順を説明します。
本スクリプトは、Firestoreのコレクションにデータを追加します。必ずテスト環境でお試しの上、本番環境へのデータインポートをお願いします。
Node.jsがインストールされた環境: このプロジェクトを進めるためには、Node.jsがインストールされている環境が必須です。手順1では、Node.jsのインストールリンクを案内しています。
Firebase Admin SDKの設定ファイル: Firebase Admin SDKを使用するためには、設定ファイルが必要です。手順2では、Firebase Admin SDKの設定ファイルの準備方法を案内します。
Node.jsがまだインストールされていない場合は、Node.js公式サイトからインストールしてください。
Firebaseプロジェクトにアクセスし、Firebase Admin SDKの設定ファイル(firebase-adminsdk.json)をダウンロードします。
ダウンロードしたファイルを、後で作成するスクリプトファイルと同じディレクトリに配置します。
ニフクラmobile backendからエクスポートしたJSON形式のデータファイル(例:import.json
)を用意します。
このファイルもスクリプトファイルと同じディレクトリに配置します。
以下のスクリプトをmigrate.js
として新しいファイルとして保存します。
コマンドラインまたはターミナルを開き、スクリプトファイルが保存されているディレクトリに移動します。
次のコマンドを実行して、必要なパッケージをインストールします。
以下のコマンドを実行してスクリプトを実行します。
スクリプトが正常に実行されると、コンソールに成功メッセージが表示されます。
スクリプトの実行結果をFirebaseコンソール上で確認してください。インポートが成功すると、Firebaseコンソール上で次のように確認できます。
移行スクリプトでは、ニフクラmobile backendのユニークなIDである「objectId」を、Firestoreコレクションのフィールドとして「objectId」という名前でインポートしています。これにより、ニフクラmobile backendで使用されているデータの識別子をFirestoreでも同様に利用できるようになります。
ニフクラ mobile backendからエクスポートしたファイルは、上記のスクリプトではimport.json
というファイル名で扱っています。
'
yourCollectionName
'
は、Firebase Firestore内で使用したいコレクションの名前に置き換えてください。
スクリプト実行中にエラーが発生した場合は、エラーメッセージを確認し、適切に対処してください。
スクリプトでは、ニフクラmobile backendからエクスポートしたデータをFirestoreに適した形式に変換しています。具体的に行われている変換処理は以下の通りです。
acl
フィールドの削除ニフクラmobile backendのデータに含まれるacl
(Access Control List)フィールドは、データのアクセス権限を定義しています。Firestoreには異なる権限管理システムがあるため、このacl
フィールドはFirestoreに移行する際に不要となります。そのため、このフィールドを各データ項目から削除しています。
createDate
とupdateDate
の変換ニフクラmobile backendのデータでは、createDate
とupdateDate
はオブジェクト形式で、iso
プロパティに日付の文字列が格納されています。例えば、以下のような構造です。
Firestoreでは、日付をより直接的な形式(単なる文字列)で保存するのが一般的です。そのため、スクリプトではこれらのフィールドを文字列に変換しています。具体的には、iso
プロパティの値を直接createDate
とupdateDate
フィールドに設定しています。