Skip to content
Now accepting Q2 projects — limited slots available. Get started →
Migration Service

Drupal UniversityからNext.jsへの移行

最後のCMS移行。約束します。

  • Every major Drupal version upgrade (D7→D8, D9→D10, D10→D11) is essentially a forced migration costing $30–60K.
  • Department subsites on Drupal multisite create duplicated infrastructure and inconsistent module management across 15–30 installations.
  • Drupal Views generate full page loads on every filter interaction, making program finders and faculty directories sluggish on mobile.
  • Contributed modules break on major version upgrades, requiring replacement or custom patches for education-specific functionality.
  • Drupal's permission system is application-level, not database-level, making multi-department content governance fragile and prone to misconfiguration.
  • Supabase Row Level Security enforces department content boundaries at the database level — structurally impossible to bypass.
  • Program finders and faculty directories return filtered results in under 100ms with no full page reload via Next.js server components.
  • Native SAML 2.0 support in Supabase Auth connects directly to university identity providers (Shibboleth, ADFS, Okta) without custom code.
  • One Next.js application replaces 15–30 department subsites with /departments/[slug] routes and department-scoped admin access.
  • No forced CMS migrations — Next.js and Supabase update incrementally without breaking changes that require full rebuilds.

ハーバード大学はDrupalを使用しています。イェール大学、プリンストン大学、スタンフォード大学、デューク大学も同様です。あなたの大学も同じです。アップグレードサイクルをご存知でしょう:D7からD8は完全な再構築でした。D8からD9は大幅な作業が必要でした。D9からD10は寄稿モジュールを破壊しました。D10からD11は2026年後半にSymfony 7とTwig 4とともにやってきます。もう1つのDrupalマイグレーションのコストで、あなたの大学はNext.js + Supabaseに移行でき、強制的なCMSマイグレーションに直面することはもうありません。

これは教育専用のマイグレーションガイドです。一般的な概要については、Drupalマイグレーションページを参照してください。このページでは、大学のDrupal導入を独自に複雑にしている要因と、すべての部分にどのように対処するかについて説明しています。

Drupal高等教育エコシステム

大学のDrupal導入は企業サイトとは異なります。それらは広大な、複数のステークホルダーシステムです — 教育固有のコンテンツタイプ、深くネストされた分類体系、独立した編集者を持つ部門サブサイト、学生情報システムとの統合。汎用的なマイグレーションアプローチは失敗します。

教育専用コンテンツタイプ

あなたのDrupalインスタンスには、高等教育用に構築された10以上のカスタムコンテンツタイプがある可能性があります:

  • Program — 単位時間、授業料、配信方法、キャリア見通しを含む学位、修了証、および コース情報
  • Faculty — 研究関心、出版物、教えるコース、オフィスアワー付きのプロフィール
  • Department — 階層構造(工学部 → コンピュータサイエンス学科 → AI Lab)
  • Event — 学術カレンダー、公開イベント、卒業式、部門固有のイベント
  • News — 大学ニュース、部門ニュース、研究発表、プレスリリース
  • Page — 数百の基本的なコンテンツページ(概要、入学、経済援助)
  • Publication — 研究論文、レポート、DOIリンク付きのポリシードキュメント
  • Job Posting — 教員職、職員職、学生雇用
  • Profile — 非教員職員のためのスタッフディレクトリエントリ
  • Testimonial — 学生およびアルムナイの成功事例

各々はSupabaseテーブルに適切なリレーショナルデザインでマッピングされます。プログラムはdegree_levelsubject_area_iddelivery_modetuition、およびcareer_outcomesをJSONBとして取得します。教員はdepartment_id外部キー、JSONBとしてのpublications、および配列としてのresearch_areasを取得します。部門は階層化のためのparent_idを使用します。

これはフラットなコンテンツダンプではありません。これは、Drupal Viewsができなかった方法でデータをクエリ可能にする適切なリレーショナルスキーマです。

Drupal View → Next.jsサーバーコンポーネント

大学のサイトは、フィルター可能なリストのためにDrupal Viewに大きく依存しています。これらすべてが、より高速でより柔軟なNext.jsページになります:

  • Program Finder — 主題、学位レベル、キャンパスでフィルタリングするDrupal View → Supabaseクエリ + URL ベースのフィルター状態を持つNext.js /programsページ。見込み客は関心分野でフィルタリングして即座に結果を取得します。
  • Faculty Directory — 部門、研究領域でフィルタリングするDrupal View → Supabaseに対する全文検索と部門フィルタリングを持つNext.js /facultyページ。
  • Event Calendar — 日付、部門、タイプでフィルタリングするDrupal View → 日付範囲フィルタリングとiCal エクスポート付きのNext.js /eventsページ。
  • News Feed — 部門、カテゴリーでフィルタリングするDrupal View → ISRを使用したNext.js /newsページなので、新しい記事は公開から60秒以内に表示されます。
  • Job Board — 部門、雇用形態でフィルタリングするDrupal View → Supabaseから終了日ロジックを使用して引き出すNext.js /careersページ。

違い:Drupal Viewはフィルター変更のたびにページ全体を読み込みます。Supabaseを備えたNext.jsサーバーコンポーネントは、フルページ再ロードなしで100ms未満でフィルタリングされた結果を返します。

Drupal Taxonomy → Supabaseリレーション

Drupal分類ボキャブラリは適切なリレーショナルテーブルにマッピングされます:

  • Subject Areas ボキャブラリ → subject_areasテーブル、programs.subject_area_id FK
  • Departments ボキャブラリ → 階層化のためのparent_id付きdepartmentsテーブル
  • Campus Locations ボキャブラリ → campusesテーブル、programs.campus_id FK
  • Research Areas ボキャブラリ → research_areasテーブル + faculty_research_areas結合テーブル
  • Event Types ボキャブラリ → event_type列挙またはルックアップテーブル

Drupalのエンティティリファレンスフィールドは適切な外部キーになります。多対多のリレーション(教員 ↔ 研究領域)は結合テーブルを取得します。データモデルはDrupalのエンティティAPIの背後に隠されるのではなく、明示的になります。

Paragraphs + Layout Builder → コンポーネントブロック

Drupal Paragraphsは、大学のマイグレーションにおける最大の問題点です。あなたの編集者は多くのパラグラフタイプを使用してページを構築しています:ヒーローバナー、統計セクション、教員スポットライト、プログラムカードグリッド、アコーディオンFAQ、埋め込みビデオ、行動喚起ブロック。

これらをSupabaseのpages.blocks列にJSONBとして保存します:

[
  {"type": "hero", "title": "...", "subtitle": "...", "image": "...", "cta_url": "..."},
  {"type": "stats", "items": [{"number": "15:1", "label": "Student-Faculty Ratio"}]},
  {"type": "program_cards", "program_ids": [12, 45, 78]},
  {"type": "faculty_spotlight", "faculty_id": 234}
]

Next.jsコンポーネントレジストリは各ブロックタイプをレンダリングします。編集者はPayload CMSまたはカスタム管理インターフェースを通じてブロックを管理します。Paragraphsと同じ柔軟性、より高速なレンダリング、Drupalキャッシュリビルド待機なし。

マルチサイト部門サブサイト

大規模な大学は15~30のDrupalサブサイトを実行しています — 経営大学院、工学部、文理学部 — 各々は独立したDrupal導入またはDrupalマルチサイト上にあります。これは運用上の悪夢です:20のサイト全体のモジュール更新、一貫性のないテーマ、重複したインフラストラクチャ。

すべてを1つのNext.jsアプリケーションに統合して、/departments/[slug]ルートを使用します。各部門は、サブブランドアイデンティティ(大学デザインシステム内のカスタムアクセントカラー)を持つ独自のセクションを取得します。部門ページ、ニュース、イベント、および教員はすべて部門にスコープされます。

キーは**Supabase行レベルセキュリティ(RLS)**です。部門編集者は、department_idが割り当てられた部門と一致するコンテンツのみを表示および編集できます。経営学部のウェブ編集者は、誤ってエンジニアリングコンテンツを編集することはできません。RLSはこれをアプリケーションコード内ではなく、CMS権限ではなく、データベースレベルで実行します。それは構造的です。

学生ポータルとSSO統合

現在のDrupalサイトはCASまたはShibbolethを介して学生を認証し、IDプロバイダー(ADFS、Okta、または大学が管理するShibboleth IdP)に接続します。学生は個人向けコンテンツを表示します:彼らのプログラム要件、アドバイザー情報、部門固有のリソース。

Supabase AuthはSAML 2.0をネイティブにサポートしています。大学のIDプロバイダーをSupabaseのSAMLプロバイダーとして設定します。フロー:

  1. 学生がNext.jsサイトの「サインイン」をクリック
  2. 大学IdP(Shibboleth/ADFS/Okta)へリダイレクト
  3. 学生が大学の認証情報で認証
  4. IdPはSAMLアサーションをSupabaseに送信
  5. Supabaseは学生のロールと部門でJWTを発行
  6. RLSポリシーは彼らが見ることができるデータを制御

カスタム認証コードなし。セッション管理の面倒なし。JWTはクレームを含み、Supabase RLSはそれらを読みます。

ユーザーロールマイグレーション

Drupalのロール(大学での —サイト管理者、ウェブ編集者、部門編集者、教員、学生、アルムナイ)は、ユーザーごとのロール割り当てを持つSupabaseのuser_rolesテーブルにマッピングされます。RLSポリシーはこれらのロールを参照します:

  • Site Admin: すべてのテーブルでの完全な読み取り/書き込み
  • Department Editor: department_id = auth.jwt()->department_idである読み取り/書き込み
  • Faculty: 独自のプロフィールを更新、出版物を追加
  • Student: 公開コンテンツへの読み取り専用、個人向けダッシュボードデータ

7段階の教育マイグレーション

フェーズ1:発見とコンテンツ監査(1~2週間)

すべてのURLのScreaming Frog クロール。Google Search Consoleトラフィック分析により、最高値のページを特定します。すべてのサブサイト全体のコンテンツタイプインベントリ。統合監査:何がDrupalに接続されていますか?Banner?PeopleSoft?Canvas?Slate?Lighthouse スコアとADAに関する既存の苦情を含むアクセシビリティベースライン。

フェーズ2:アーキテクチャとスキーマ設計(1週間)

テーブル、リレーション、およびRLSポリシー付きSupabaseスキーマ。Next.jsルート構造。ナビゲーション階層。管理インターフェースに関する決定:非技術編集者向けのPayload CMS、またはカスタムSupabaseダッシュボード。SSO、SISデータプル、およびCRMウェブフック用の統合アーキテクチャ。

フェーズ3:Drupalからのデータエクスポート(1~2週間)

D8/D9/D10:/jsonapi/node/program?page[limit]=50経由のJSON:APIエクスポート、すべてのコンテンツタイプでページ分割。D7:Drupalのフィールドテーブルに対する直接MySQL クエリ。public://およびprivate://ファイルシステムからのメディアエクスポート。ユーザーとタクソノミーのエクスポート。メニュー構造抽出。

フェーズ4:構築(3~8週間)

すべてのページテンプレート付きNext.jsアプリケーション。アクティブなRLSポリシーで入力されたSupabaseテーブル。ファセット化されたフィルター付きプログラムファインダー。検索付き教員ディレクトリ。部門セクション。SSO付き学生ポータル。管理インターフェース。すべての統合 — SISデータプル、CRMウェブフック、キャンパスツアー予約。

フェーズ5:コンテンツインポートと検証(1~2週間)

Drupalエクスポートを Supabaseインスコートスクリプトに変換します。すべてのコンテンツタイプをインポート。メディアをSupabase StorageまたはVercel Blobにアップロード。コンテンツ内のメディアURL を書き直し。各コンテンツタイプの10%をスポットチェック。すべてのフィルター、検索、およびナビゲーションパスをテストします。

フェーズ6:リダイレクトマッピング(1週間)

これは大学にとって重要です。あなたの.eduドメインは、他の教育機関、政府サイト、および研究データベースからの数千のバックリンクを持っています。これらのバックリンクを失うことはSEO権限にとって壊滅的です。すべてのDrupal URL(エイリアス、システムパス(/node/1234)、およびサブサイトURL)を新しいNext.jsルートにマッピングします。Next.jsミドルウェア経由で実装され、無制限のリダイレクト容量があります。

フェーズ7:起動と監視(進行中)

DNSカットオーバー。Google Search Consoleへの新しいサイトマップ送信。最初の30日間の毎日の404監視。Payload CMSまたはカスタム管理スタッフトレーニング。部門管理トレーニング。教員自己更新ワークフロートレーニング。ウェブチームとの毎日の監視と週次チェックインを伴う30日間のハイパーケア。

価格

機関タイプ ページ スコープ タイムライン 投資
コミュニティカレッジ 500未満 プログラムファインダー、基本的なディレクトリ、ニュース 6~8週間 $50~80K
中規模大学 500~2,000 プログラムファインダー、教員ディレクトリ、部門セクション、イベント 8~12週間 $80~150K
大規模大学 2,000以上 マルチキャンパス、部門サブサイト、学生ポータル、SSO、i18n 10~16週間 $120~200K

今が理由:D11クロックが進行中

Drupal 11は2026年後半にSymfony 7とTwig 4で到着します。D10上の大学は、次の6~12か月でマイグレーション決定に直面しています。D10からD11へのマイグレーションは最小$30~60Kで実行され、3~4年以内にD12に直面します。

Next.js + Supabaseマイグレーションはスコープに応じて$50~200Kで実行されますが、5年の総所有コストはDrupalに留まるよりも低くなります。強制アップグレードなし。寄稿モジュールの破損なし。Drupalセキュリティアドバイザリーなし。あなたのフレームワークはDrupalのスケジュールではなく、あなたのスケジュールで更新されます。

もう1つのDrupalマイグレーションのコストのために、それを最後のものにしてください。

How It Works

The migration process

01

Discovery & Audit

We map every page, post, media file, redirect, and plugin. Nothing gets missed.

02

Architecture Plan

New stack designed for your content structure, SEO requirements, and performance targets.

03

Staged Migration

Content migrated in batches. Each batch verified before the next begins.

04

SEO Preservation

301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.

05

Launch & Monitor

DNS cutover with zero downtime. 30-day monitoring period included.

Before vs After

Drupal (D7/D8/D9/D10) vs Next.js + Supabase

Metric Drupal (D7/D8/D9/D10) Next.js + Supabase
Lighthouse Mobile 35-55 90-100
TTFB 1.8-3.5s <0.3s
Program Finder Filter Response 2-4s (full page load) <100ms (server component)
Hosting Cost (multi-site) $2,000-5,000/mo $200-600/mo
Drupal Upgrade Cost (per cycle) $30-60K every 3-4 years $0 (incremental updates)
Department Content Isolation Application-level permissions Database-level RLS
FAQ

Common questions

How is a university Drupal migration different from a regular Drupal migration?

University Drupal installations have education-specific content types (programs, faculty, departments), complex taxonomy hierarchies, department subsites with independent editors, SSO integration with campus identity providers, and connections to student information systems like Banner or PeopleSoft. Generic migration approaches miss these requirements entirely.

Can we keep our university SSO (Shibboleth/CAS) with Next.js?

Yes. Supabase Auth supports SAML 2.0 natively. We configure your university's identity provider — whether Shibboleth, ADFS, or Okta — as a SAML provider in Supabase. Students and staff authenticate through your existing IdP, and Supabase issues JWTs that control access via Row Level Security policies.

How do department editors manage their own content without affecting other departments?

Supabase Row Level Security (RLS) enforces content boundaries at the database level. A department editor assigned to the School of Business can only create, edit, and delete content where `department_id` matches their assignment. This is structural — not application-level permissions that can be bypassed.

What happens to our Drupal Paragraphs and Layout Builder pages?

Paragraph types export as structured JSONB blocks stored in Supabase. Each paragraph type — hero, stats, faculty spotlight, program cards — maps to a React component in a Next.js component registry. Editors manage blocks through Payload CMS or a custom admin interface with the same flexibility they had in Drupal.

Will we lose SEO rankings during the migration?

Not if redirects are handled correctly. University .edu domains carry significant authority from backlinks across educational institutions and government sites. We map every Drupal URL to its new Next.js equivalent, implement redirects via Next.js middleware, and monitor 404 errors daily for 30 days post-launch.

Should we wait for Drupal 11 instead of migrating to Next.js?

Drupal 11 arrives late 2026 with Symfony 7 and Twig 4, requiring another migration costing $30–60K minimum. Then D12 follows in 3–4 years. A Next.js + Supabase migration costs $50–200K but eliminates forced CMS migrations permanently. The 5-year total cost of ownership favors Next.js.

How do you handle Drupal Views like our program finder and faculty directory?

Each Drupal View becomes a Next.js server component backed by Supabase queries. Your program finder gets faceted filtering by subject area, degree level, and campus with results returning in under 100ms. Faculty directories get full-text search with department filtering. Every filter interaction is instant — no full page reload.

Can we consolidate our 20+ department Drupal subsites into one application?

Yes, and you should. We consolidate all department subsites into one Next.js application with `/departments/[slug]` routes. Each department retains its sub-brand identity with custom accent colors. Supabase RLS ensures department admins only manage their own content. One codebase, one deployment, one set of dependencies to maintain.

Ready to migrate?

Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.

Get your free assessment →
Get in touch

Let's build
something together.

Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.

Get in touch →