コンテンツにスキップ

データストア スキーマ変更手順

Discovery Engine のスキーマを変更する際の手順と、使用するスクリプトの説明です。

スキーマ変更手順

スキーマの変更はデータストアの再作成(destroy → create)になるため、事前にドキュメントを削除する必要があります。

全ドキュメント削除 → terraform apply → ドキュメントインポート

Step 1: modules/setup/discoveryengine.tf のスキーマを変更する

json_schema を編集して変更内容をコミットします。

Step 2: 全データストアのドキュメントを削除

./datastore_scripts/delete_datastore_documents.sh <PROJECT_ID>

例:

./datastore_scripts/delete_datastore_documents.sh sorarun-iac-demo

⚠️ purge は非同期処理です。GCPコンソールで削除完了を確認してから次のステップへ進んでください。

Step 3: terraform apply でスキーマを再作成

cd environments/<ENV_DIR>/setup
terraform apply -var-file="<ENV_NAME>.tfvars"

例:

cd environments/sorarun-iac-demo/setup
terraform apply -var-file="terraform.tfvars"

Step 4: ドキュメントをインポート

./datastore_scripts/import_datastore_documents.sh <PROJECT_ID>

例:

./datastore_scripts/import_datastore_documents.sh sorarun-iac-demo


スクリプト一覧

delete_datastore_documents.sh

指定プロジェクトの全データストアのドキュメントを削除します。 Discovery Engine の purge API を使用して一括削除します。

./datastore_scripts/delete_datastore_documents.sh <PROJECT_ID> [FOLDERS]
引数 必須 説明
PROJECT_ID GCPプロジェクトID
FOLDERS - スペース区切りのフォルダ名(省略時はtfvarsから自動取得)

import_datastore_documents.sh

syncDatastore Cloud Function を全フォルダに対して呼び出し、GCSからドキュメントをインポートします。

./datastore_scripts/import_datastore_documents.sh <PROJECT_ID> [FOLDERS]
引数 必須 説明
PROJECT_ID GCPプロジェクトID
FOLDERS - スペース区切りのフォルダ名(省略時はtfvarsから自動取得)

tf_import_discoveryengine_schema.sh

google_discovery_engine_schema リソースを Terraform state にインポートします。 新規環境セットアップ時や state が失われた場合に使用します。

./datastore_scripts/tf_import_discoveryengine_schema.sh <ENV_DIR> <PROJECT_ID> [FOLDERS]
引数 必須 説明
ENV_DIR Terraformディレクトリ(例: environments/sorarun-iac-demo/setup
PROJECT_ID GCPプロジェクトID
FOLDERS - スペース区切りのフォルダ名(省略時はtfvarsから自動取得)

前提条件

  • gcloud CLI がインストール・認証済みであること
  • Discovery Engine API が有効であること
  • syncDatastore Cloud Function がデプロイ済みであること