kintoneのサブドメイン移行(引っ越し)について調べてみた。

 
kintoneのサブドメイン移行(引っ越し)について調べてみた。
自分のサブドメインで開発したいくつかのアプリを、別のサブドメインに移行(イミグレーション)したい場合、どうすればいいのか調べてみました。

前提:
基本的にkintoneアプリには、エクスポート・インポート機能はない。

現実的な対応策:
アプリのテンプレート化を利用する。
右上の歯車→kintoneシステム管理→アプリテンプレートから作成。「関連レコード」や「ルックアップ」など参照がアプリは自動的にアプリパック(複数アプリを一つのzipファイルにする)となります。
これで、アプリの設計部分はインポート・エクスポートできましたが、肝心のレコードデータは空の状態です。

レコードデータ自体は、「書き出す」でファイルとしてダウンロード可能なのですが、問題は「関連レコード」や「ルックアップ」で取得してきたフィールドです。

ルックアップ=ユーザが選択した値コピーして、フィールドに入れるから「書き出し」は問題なし…。と思いきや、読み込む時にルックアップフィールドは選択出来ない!
つまりキーもコピーした値もインポート出来ず、実質上意味が無いレコードになる。

関連レコード=そもそも「書き出し」でフィールド選択できない。アプリ側の設定で保持しているっぽい。キー対象のフィールドを見てリレーショナルに表示している。
何が問題なのかというと、関連レコードでレコード番号をキーにしていると、データ移行時に変更されてしまうのでリレーションが崩れてしまう。
(マスタ系のレコードデータは移行しても問題ないが、それを参照しているアプリのレコードはおかしくなる可能性が非常に高い)

結論:
サブドメイン間でアプリ移行を行う場合は、テーブル設計だけアプリテンプレートで行い、レコードを空の状態で運用を開始すべき(マスタ系テーブルはOK)