← ブログ一覧
技術ブログ

他のヘッドレス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からの乗り換えを検討している方の参考になれば。

他のヘッドレスCMSから移行する ― CSVインポートでスキーマまで自動生成 | Tessera