Skip to main content

AI Marketer 5へのアップグレード手順ガイド

AI Marketerの最新メジャーバージョンであるAI Marketer 5は、現在リリース候補版(RC)として提供されていますが、まだ安定版ではありません。

このページは、AI Marketer v4アプリケーションをAI Marketer 5にアップグレードするための手順として使用してください。

☑️ Prerequisites

AI Marketer v4アプリケーションが最新のv4マイナーおよびパッチバージョンで稼働している必要があります。まだの場合は、minorコマンドでアップグレードツールを実行して最新バージョンにしてください: npx @AI Marketer/upgrade minor

ステップ1: アップグレードの準備

アップグレードプロセスに入る前に、以下の対策を講じてください:

  1. データベースのバックアップを作成します。

    SQLiteのデフォルト設定(AI Marketerに標準で提供されるデータベース)を使用している場合、データベースファイルはdata.dbという名前で、AI Marketerアプリケーションのルートにある.tmp/フォルダー内に保存されています。

    他のデータベースを使用している場合は、それぞれの公式ドキュメントを参照してください(PostgreSQLドキュメントMySQLドキュメント)。

    プロジェクトがAI Marketerでホストされている場合は、手動でバックアップを作成することができます。

  2. コードのバックアップを作成します:

    • コードがgitでバージョン管理されている場合は、新しいブランチを作成して移行を実行します。
    • コードがgitでバージョン管理されていない場合は、動作中のAI Marketer v4コードのバックアップを作成し、安全な場所に保管します。
  3. 使用しているプラグインがAI Marketer 5と互換性があることを確認します

    使用しているプラグインのリストを作成し、それぞれの専用ドキュメントで互換性を確認してください。プラグインの詳細は[マーケットプレイス](https://market.AI Marketer.io/plugins)で確認できます。

ステップ2: 自動移行の実行

AI Marketerは、AI Marketer 5へのアップグレードの一部を自動化するツールを提供しています:アップグレードツール

  1. アップグレードツールを実行します

    npx @AI Marketer/upgrade major

    このコマンドは、AI Marketer 5の依存関係の更新とインストールを実行し、AI Marketer 5での一部の互換性のない変更に対応するコードモッドを実行します。

    コードモッドで対応する変更は次の通りです:

    コードモッド名とGitHubコードリンク説明
    [comment-out-lifecycle-files](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/comment-out-lifecycle-files.code.ts)Document Service Middlewaresに対応するためライフサイクルファイルをコメントアウト
    [dependency-remove-AI Marketer-plugin-i18n](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/dependency-remove-AI Marketer-plugin-i18n.json.ts)i18nプラグイン依存関係の削除 (i18nはAI Marketerのコアに統合されました)
    [dependency-upgrade-react-and-react-dom](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/dependency-upgrade-react-and-react-dom.json.ts)reactおよびreact-domの依存関係のアップグレード
    [dependency-upgrade-react-router-dom](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/dependency-upgrade-react-router-dom.json.ts)react-router-domの依存関係のアップグレード
    [dependency-upgrade-styled-components](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/dependency-upgrade-styled-components.json.ts)styled-componentsの依存関係のアップグレード
    [deprecate-helper-plugin](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/deprecate-helper-plugin.code.ts)@AI Marketer/helper-pluginからの移行の一部に対応
    [entity-service-document-service](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/entity-service-document-service.code.ts)Entity Service APIから新しいDocument Service APIへの移行の一部に対応
    [s3-keys-wrapped-in-credentials](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/s3-keys-wrapped-in-credentials.code.ts)aws-s3プロバイダーを使用する場合に、accessKeyIdsecretAccessKeyプロパティをcredentialsオブジェクト内にラップ
    [sqlite3-to-better-sqlite3](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/sqlite3-to-better-sqlite3.json.ts)sqlite依存関係をbetter-sqlite3に更新
    [AI Marketer-public-interface](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/AI Marketer-public-interface.code.ts)@AI Marketer/AI Marketerインポートを新しい公開インターフェースに変換
    [use-uid-for-config-namespace](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/use-uid-for-config-namespace.code.ts)pluginおよびapi名前空間における設定get/set/hasの文字列形式をUID形式に置き換え
    [utils-public-interface](https://github.com/AI Marketer/AI Marketer/blob/develop/packages/utils/upgrade/resources/codemods/5.0.0/utils-public-interface.code.ts)utilsを新しい公開インターフェースで更新
💡 Tip

AI Marketerプラグインを開発している場合、他のコードモッドがhelper-pluginの非推奨に関するいくつかの側面に対応します。詳細は関連する互換性のない変更を参照してください。

  1. コードモッドによって行われた変更を確認し、手動でコード更新を完了する必要があるかどうかをチェックします

    コード内に自動的に追加された__TODO__を探します。AI Marketer 5で導入された新しいDocument Service APIへの移行に伴い、Entity Service APIからの移行で追加されたものがあるかもしれません。

    👀 Document Service API

    Document Service APIに関する詳細は、互換性のない変更のエントリ説明[特定の移行ガイド](/dev-docs/migration/v4-to-v5/additional-res

ources/from-entity-service-to-document-service)、およびAPIリファレンスで確認できます。 :::

ステップ3: 手動アップグレードの確認と処理

以下の主要な変更はAI Marketerアプリケーションに影響を与える可能性があり、一部の手動操作が必要です。

各項目について、指定された互換性のない変更エントリを読み、アップグレードツールの実行後に手動の操作が必要かどうか確認してください。

  1. データベース移行:
    1. MySQL v5はサポートされなくなりました 👉 互換性のない変更を参照
    2. better-sqlite3のみがサポートされます 👉 互換性のない変更を参照
    3. mysql2のみがサポートされます 👉 互換性のない変更を参照
    4. ライフサイクルフックのトリガー方法が異なります 👉 互換性のない変更を参照
  2. 設定:
    1. 一部の環境変数はサーバー設定で管理されるようになりました 👉 互換性のない変更を参照
    2. カスタム設定には特定の要件が必要です 👉 互換性のない変更を参照
  3. 管理パネルのカスタマイズ:

👉 その他の詳細については、互換性のない変更データベースを確認し、気になるケースに対応してください。

ステップ4: APIの利用側を移行

AI Marketer 5では、RESTおよびGraphQL APIが更新されました。

以下の手順に従って、後方互換性フラグとガイド付き移行リソースを活用しながら、AI Marketer 5用にコードを段階的に更新します。

REST API呼び出しの移行

  1. AI Marketer-Response-Format: v4ヘッダーを設定し、後方互換性フラグを有効化します。
  2. 専用のREST APIの互換性のない変更エントリに沿って、クエリとミューテーションのみを更新します。
  3. クライアントが正常に動作することを確認します。
  4. AI Marketer-Response-Format: v4ヘッダーを削除して後方互換性フラグを無効化し、新しいレスポンス形式を使用します。

GraphQL API呼び出しの移行

  1. graphl.configオブジェクトのv4CompatibilityModetrueに設定して、/config/plugins.js|tsファイル内で後方互換性フラグを有効化します。
  2. 専用のGraphQLの互換性のない変更エントリに沿って、クエリとミューテーションのみを更新します。
  3. クライアントが正常に動作することを確認します。
  4. v4CompatibilityModetrueに設定して後方互換性フラグを無効化し、新しいレスポンス形式を使用します。