---
url: 'https://dxpr.com/ja/hc/documentation/learn-dxpr-builder/getting-started/migration-1x-to-3x'
title: 'DXPR Builder 1.x・2.xからの移行 | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T14:19:41+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: 'DXPR Builder 3.xは、1.xや2.xのどのリリースからもその場で更新できます。Composerがコードを入れ替え、drush updatedbがdxpr_builder.installの更新フックを実行して設定とコンテンツを変換します。このページではフックの内容、カスタムコードの変更点、結果の確認方法を説明します。リリース日はgitタグ由来です。以前のリリースをご覧ください。'
tags:
  - 'Move from another builder'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T14:19:41+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'DXPR Builder 1.x・2.xからの移行'
      description: 'DXPR Builder 3.xは、1.xや2.xのどのリリースからもその場で更新できます。Composerがコードを入れ替え、drush updatedbがdxpr_builder.installの更新フックを実行して設定とコンテンツを変換します。このページではフックの内容、カスタムコードの変更点、結果の確認方法を説明します。リリース日はgitタグ由来です。以前のリリースをご覧ください。'
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T14:19:41+0000'
      dateModified: '2026-10-24T14:19:41+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/ja/hc/documentation/learn-dxpr-builder/getting-started/migration-1x-to-3x'
      articleSection: 他のビルダーから移行
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/ja/hc/documentation/learn-dxpr-builder/getting-started/migration-1x-to-3x'
      description: 'DXPR Builder 3.xは、1.xや2.xのどのリリースからもその場で更新できます。Composerがコードを入れ替え、drush updatedbがdxpr_builder.installの更新フックを実行して設定とコンテンツを変換します。このページではフックの内容、カスタムコードの変更点、結果の確認方法を説明します。リリース日はgitタグ由来です。以前のリリースをご覧ください。'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: ホーム
            item: 'https://dxpr.com/ja'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: ja
---
[ヘルプセンター](/ja/node/75)/[ドキュメント](/ja/hc/documentation) /[DXPR Builderを学ぶ](/ja/hc/documentation/learn-dxpr-builder) /[ここから始める](/ja/hc/documentation/learn-dxpr-builder/start-here) /[他のビルダーから移行](/ja/hc/documentation/learn-dxpr-builder/migration) # DXPR Builder 1.x・2.xからの移行.

 DXPR Builderを学ぶここから始める他のビルダーから移行

   ## このガイドの内容

 関連ガイド

- [DXPR Builderの更新](/ja/hc/documentation/learn-dxpr-builder/getting-started/updating)
- [変更履歴](/ja/hc/documentation/learn-dxpr-builder/getting-started/changelog)
- [設定リファレンス](/ja/hc/documentation/learn-dxpr-builder/reference/config-reference)

DXPR Builder 3.xは、1.xや2.xのどのリリースからもその場で更新できます。Composerがコードを入れ替え、`drush updatedb`が`dxpr_builder.install`の更新フックを実行して設定とコンテンツを変換します。このページではフックの内容、カスタムコードの変更点、結果の確認方法を説明します。リリース日はgitタグ由来です。[以前のリリース](/hc/documentation/learn-dxpr-builder/getting-started/changelog-older)をご覧ください。

## バージョン履歴の概要

| 系列 | Drupal | 備考 |
|---|---|---|
| 7.x-1.x | Drupal 7 | Glazed Builderとして販売。後に改名。 |
| 1.x (8.x-1.x) | Drupal 8と9 | 2020年5月の最初の1.xリリースからモジュールマシン名`dxpr_builder`。最終リリース1.8.8。 |
| 2.x | Drupal 9.3から11 | CKEditor 5、Keyモジュール対応、最初のAI機能。最終リリース2.8.1。 |
| 3.x | Drupal 10.2と11 | Bootstrap 5限定、Keyモジュール必須、コンテンツ移行、AIページ・画像生成。 |

マシン名は1.xから3.xで変わりません。Glazed時代のマークアップが残るコンテンツは、アップグレード前に1.xや2.xで移行します。3.xではGlazed名の書き換えがなくなりました（以下参照）。

## 始める前の要件

- Drupal 10.2以降、またはDrupal 11（`dxpr_builder.info.yml`の`core_version_requirement`）。
- Keyモジュール。3.xではハード依存です。`drush updatedb`で見つからなければ`dxpr_builder_update_9020()`がインストールします。
- DXPR Builder 2.0.0以降向けに発行されたプロダクトキー。`dxpr_tier`クレームのないキーは設定フォームが拒否します。
- Bootstrap 5を提供するテーマ、または**Bootstrap 5**サイドロード選択肢。Bootstrap 3と4のサイドロードはなくなりました。

## 移行手順

1. データベースとファイルをバックアップします。

    ```bash
    drush sql:dump --result-file=backup.sql

    ```
2. Composerでコードを更新します。3.xは現在プレリリースのため、許可します。

    ```bash
    composer require 'drupal/dxpr_builder:^3.0@beta' --with-all-dependencies

    ```
3. 更新フックを実行し、キャッシュを再構築します。

    ```bash
    drush updatedb
    drush cache:rebuild

    ```

    いくつかの3.xフックはすべてのDXPR Builderフィールド値をバッチで処理します（以下参照）。大規模サイトでは数秒ではなく数分掛かります。
4. 設定画面`/admin/dxpr_studio/dxpr_builder/settings`を開き、**License**セクションを確認します。更新9020の後は**Storage method**が**Key module**、**Key**が`DXPR Builder JWT`（`dxpr_builder_jwt`）です。
5. 同じページの**Sideload Bootstrap files**を確認します。Bootstrap 3や4だったサイトは**Bootstrap 5**になっています。
6. 開くのは`/admin/dxpr_studio/dxpr_builder/ai_settings`で、初期値オンの3つのAIトグルをオンのままにするか決めます。
7. DXPR Builderを使うページを開き、描画と編集が正しいか確認します。

## 更新フックの内容

8005から8025のフックは1.xで出荷済みです。1.xサイトは8026以降のすべて、2.8.0や2.8.1サイトは8040と9014以降を実行します。関数名は`dxpr_builder_update_NNNN()`です。

### 2.xで追加（1.xからの場合に実行）

| フック | 内容 |
|---|---|
| 8026 | 中央のDXPR Builderユーザー保存を更新します。 |
| 8027 | ライセンス情報ブロックとPeopleビューへの「DXPR Builder User」列を追加します。 |
| 8028 | コンテンツロック用の`dxpr_lock`テーブルを作成します。 |
| 8029 | ユーザーライセンスダッシュボードにライセンスブロックを追加します。 |
| 8030 | 「Bootstrap 3 Light」選択肢の削除後にBootstrap設定を切り替えます。 |
| 8031 | 無効状態でインストールされたライセンス情報ブロックを有効化します。 |
| 8032 | ブロック済みユーザーをライセンス保存から取り除きます。 |
| 8033 | 初期化するのは`drm_last_contact`です。 |
| 8034 | インストールするのは`dxpr_user_is_disavowed`ユーザーフィールドとavow/disavowユーザーアクションです。 |
| 8035 | 初期化するのは`hide_reminders`設定です。 |
| 8036 | プロファイルのCKEditor 4ツールバーボタン名をCKEditor 5に移行します。 |
| 8037 | 高速読み込み画像向けの既定画像スタイルを追加します。 |
| 8038 | Keyモジュール連携サービス登録のためキャッシュを消去します。 |
| 8039 | 不完全な`image_scale_and_crop`設定の画像スタイルを修復します。 |
| 9007 | 作成するのは`ai_tone_of_voice`と`ai_agent_commands`の語彙で、既定ターム付きです。 |
| 9008 | 設定するのは`ai_enabled`で、trueにして旧`ai_page_enabled`キーを取り除きます。 |
| 9009 | 対象は`drm_last_contact`で、設定から状態に移します。 |
| 9010 | キャッシュを消去します。 |
| 9011 | 全プロファイルでAI AssistantとAI Tone of Voiceボタンを有効化します。 |
| 9012 | 復元するのは`ai_page_enabled`で、既定trueです。 |
| 9013 | AI出力フィルターの既定値（`ai_output_allowed_domains`）を設定します。 |
| 9015 | 追加するのは`ai_image_enabled`で、既定trueです。 |

### 3.xで追加（1.xや2.xからの場合に実行）

| フック | 内容 |
|---|---|
| 8040 | 正規化するのは`bootstrap`で、`bs5`にします。`1`（Bootstrap 3）と`bs4`値は書き換えられます。 |
| 9014 | バッチ：コンテンツ内のOwl CarouselマークアップをBootstrapカルーセルに変換します（`src/Migration/OwlCarouselMigration.php`）。 |
| 9016 | 追加するのは`ai_user_model_selection`で、既定trueです。 |
| 9017 | バッチ：circlifulサークルカウンターをBootstrapプログレスマークアップに変換します（`CircleCounterMigration.php`）。 |
| 9018 | バッチ：旧プログレスバーマークアップをBootstrapプログレス構造に変換します（`ProgressBarMigration.php`）。 |
| 9020 | Keyモジュールをインストールし、`json_web_token`をKeyエンティティ`dxpr_builder_jwt`に移して`api_key_storage`を`key`にし、平文値を消去します。 |
| 9021 | ユーザーテンプレートの`type`プロパティーをマークアップから補完します。 |
| 9022 | バッチ：内部`/node/N`リンクに`data-entity-type`と`data-entity-uuid`を付けます（`EntityLinkMigration.php`）。 |
| 9023 | バッチ：9022が`text_with_summary`フィールドで失ったテキストフォーマット、概要、削除デルタを修復します。 |
| 9024 | バッチ：エイリアス付き内部リンクを9022と同様に拡充します（`AliasLinkMigration.php`）。 |
| 9025 | 存在しない語彙を指す`tone_of_voice_vocabulary`を消去します。 |
| 9026 | キーがKeyエンティティにある場合に設定に残った平文`json_web_token`を消去します。 |

更新9019はありません。

### コンテンツ移行

3.xではコンテンツ移行はバッチのみで実行します。描画時の変換はなくなりました。移行状態ページ（`/admin/dxpr_studio/dxpr_builder/migration-status`）と状態レポートに未処理コンテンツが一覧されます。上記の更新フックが移行し、そのページの**Run now**と**Run all pending migrations**操作でも移行します。移行は`dxpr_builder.content_migration`タグ付きサービスです（`dxpr_builder.services.yml`）。失敗を記録したバッチは完了扱いになりません。失敗項目は記録され、未処理のまま残ります。

1.xと2.xが描画時に適用した`glazed_to_dxpr`文字列書き換えは削除されました。Glazed名は2020年5月の1.0.0で廃止され、Glazed・Carbide時代のコンテンツはすべてそれらのリリースで移行済みとみなします。書き換えは単なる文字列置換でした。Glazedに言及するだけのサイト（サポート記事、ドキュメントリンクなど）では、マークアップ移行ではなく文章を書き換えてリンクを壊す恐れがありました。保存コンテンツにGlazedクラス名が残るサイトは、先に2.xリリースを実行します。

## カスタムコードの変更点

### フィールドフォーマッター

フィールドフォーマッターIDは`dxpr_builder_text`です（ラベル「DXPR Builder」。`src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php`）。1.xから不変です。設定は`profile`1つのみで、空はロールベースの既定、またはプロファイルIDです。各ビルダーフィールドが表示モードでこのフォーマッターを使い続けているか確認します。更新9023の修復は、そのフィールドに限られます。

### フック

`dxpr_builder.api.php`に3.xフックの文書があります。Glazed Builderのフックは次のとおり改名します。

| Glazed Builderフック | DXPR Builder 3.xフック |
|---|---|
| `hook_glazed_builder_classes()` | `hook_dxpr_builder_classes_alter(array &$dxpr_builder_classes)` |
| `hook_glazed_builder_buttons_folders()` | `hook_dxpr_builder_element_buttons_folders_alter(array &$dxpr_element_buttons_folders)` |
| `hook_glazed_builder_elements_folders()` | 削除。代替フックなし。 |
| なし | `hook_dxpr_builder_icon_sets_alter(array &$icon_sets)`（新設）。アイコンセットは`MODULE.dxpr_icon_sets.yml`ファイルで宣言します。 |

### CSSとユーティリティクラス

Glazedクラス名を狙うカスタムCSSはDXPR名にします（例：`dxpr-theme-util`、`panel-dxpr`、`dxpr-builder`）。エディターに公開するユーティリティクラスは`hook_dxpr_builder_classes_alter()`経由で提供します。

### 設定とデプロイ

- コミット済み設定から`json_web_token`を取り除きます。更新9020の後はキーが`dxpr_builder_jwt` Keyエンティティにあります。そのKeyは**Configuration**プロバイダーのため、キーは`key.key.dxpr_builder_jwt`として引き続きエクスポートされます。エクスポートから外すには、**File**または**Environment**プロバイダーに`/admin/config/system/keys`で切り替えます。
- 設定エクスポートには2つのAI語彙とタームが含まれるようになります。
- プロファイルはCKEditor 5ボタン名を`inline_buttons`と`modal_buttons`にエクスポートします。

## トラブルシューティング

更新後にコンテンツが正しく表示されない場合：

1. 実行するのは`drush cache:rebuild`です。
2. 確認するのは`/admin/reports/dblog`で、`dxpr_builder`チャンネルのメッセージを確認します。バッチ移行は飛ばした項目を記録します。
3. 各ビルダーフィールドの表示モードが引き続き**DXPR Builder**フォーマッターか確認します。
4. テーマがBootstrap 5を読み込むか確認します。または`/admin/dxpr_studio/dxpr_builder/settings`でサイドロードを有効化します。

## 次のステップ

- [更新](/hc/documentation/learn-dxpr-builder/getting-started/updating)：系列内の定例更新を確認できます
- [変更履歴](/hc/documentation/learn-dxpr-builder/getting-started/changelog)：各リリースの変更内容を確認できます
- [設定リファレンス](/hc/documentation/learn-dxpr-builder/reference/config-reference)：更新フックが触れる全キーを確認できます