
他のヘッドレスCMSから移行する ― CSVインポートでスキーマまで自動生成
平原 典彦 — Tesseraを開発しているエンジニア。ヘッドレスCMSとAI連携に関心があります。
別のヘッドレスCMSからの移行で一番面倒なのは、コンテンツを移し替えることそのものよりも、移行先で同じスキーマ(コンテンツタイプ・フィールド)を手で組み直す作業です。Tesseraは、この“作り直し”をなくすために、移行をCSVインポート一本に絞り、CSVからスキーマを自動生成します。
なぜCSVに絞ったのか
ヘッドレスCMSごとにAPIも管理画面も違いますが、「コンテンツをCSV(またはJSON→CSV)で書き出す」手段はほぼどのサービスにもあります。特定のサービス専用のアダプタを何本も抱えるより、どこからでも通せるCSVの1経路を丁寧に作るほうが、結果的に多くの移行元をカバーできます。
CSVのヘッダーと値から、スキーマを推論する
アップロードしたCSVを見て、Tesseraは各列がどんなフィールドかを推論します。ここはAIではなく決定論的なヒューリスティックです(列名・値のパターンから型を判定)。同じCSVなら毎回同じ結果になり、ブラックボックスにならないようにしています。
- 日付らしい値の列 → 日付フィールド
- URLらしい値 → テキスト(URL)
- 真偽値らしい列 → 真偽値フィールド
- 繰り返し現れる少数の値 → 選択肢の候補
…といった具合に、コンテンツタイプの「雛形」を組み立てます。
自動生成でも、承認フローは必ず通す
Tesseraの核は「自動化やツールに任せても、確定させるのは人間」という設計です。移行でも同じで、自動推論されたスキーマは即反映されず、承認待ちとしてステージングされます。あなたが差分を確認して承認するまでは、既存のスキーマもコンテンツも一切変わりません。既存スキーマとの衝突や整合性もこの段で検査されます。
新規コンテンツタイプなら、1画面・1操作で
移行先にまだ無いコンテンツタイプを新しく作る場合に限り、CSVプレビュー画面を唯一の確認地点として、スキーマ作成とインポートを1操作・1トランザクションで完了できる例外運用も用意しました(取り消し=Undoつき)。「確認する場所が何画面もあって迷う」状態を避けるためです。
まとめ
- 移行の本当の手間は「スキーマの作り直し」。TesseraはそれをCSVからの自動生成でなくす
- 推論は決定論的ヒューリスティック(AIではない)で、結果が再現・説明可能
- 自動生成でも承認・ステージングフローは必ず通すので、いきなり壊れない
- 新規作成なら1画面・1操作で完了(Undo付き)
「移行=手作業でスキーマを組み直す日」から、「CSVを1枚渡す」へ。既存CMSからの乗り換えを検討している方の参考になれば。