5.5. データベーススキーマの初期化
SonataFlow
を PostgreSQL の永続性で使用している場合は、Flyway を有効にするか、Data Definition Language (DDL) スクリプトを使用してデータベーススキーマの更新を手動で適用することで、データベーススキーマを初期化できます。
Flyway は kie-addons-quarkus-flyway
ランタイムモジュールで管理されており、デフォルトでは無効になっています。Flyway を有効にするには、以下のいずれかの方法で設定する必要があります。
5.5.1. ワークフロー ConfigMap での Flyway 設定
ワークフロー ConfigMap
で Flyway を有効化するには、以下のプロパティーを追加します。
ワークフロー ConfigMap
で Flyway を有効化する例
apiVersion: v1 kind: ConfigMap metadata: labels: app: example-workflow name: example-workflow-props data: application.properties: | kie.flyway.enabled = true
5.5.2. ワークフローコンテナーで環境変数を使用した Flyway 設定
次の例を使用して、SonataFlow
CR の spec.podTemplate.container
フィールドに環境変数を追加することで、Flyway を有効化できます。
ワークフローコンテナー環境変数を使用して Flyway を有効化する例
apiVersion: sonataflow.org/v1alpha08 kind: SonataFlow metadata: name: example-workflow annotations: sonataflow.org/description: Example Workflow sonataflow.org/version: 0.0.1 spec: podTemplate: container: env: - name: KIE_FLYWAY_ENABLED value: 'true' flow: ...
5.5.3. SonataFlowPlatform プロパティーを使用した Flyway 設定
namespace 内のすべてのワークフローに共通の Flyway 設定を適用するには、以下の例に示されている SonataFlowPlatform
CR の spec.properties.flow
フィールドにプロパティーを追加します。
この設定は、ワークフローのデプロイメント中に適用されます。ワークフローをデプロイする前に Flyway プロパティーが設定されていることを確認します。
SonataFlowPlatform
プロパティーを使用して Flyway を有効化する例
apiVersion: sonataflow.org/v1alpha08 kind: SonataFlowPlatform metadata: name: sonataflow-platform spec: properties: flow: - name: kie.flyway.enabled value: true
5.5.4. DDL スクリプトを使用した手動データベースの初期化
手動の初期化が必要な場合は、kie.flyway.enabled
プロパティーが未設定であるか、明示的に false
に設定されていることを確認して、Flyway を無効化する必要があります。
- デフォルトでは、各ワークフローはワークフロー名と同じスキーマ名を使用します。各ワークフローにスキーマの初期化を手動で適用してください。
-
SonataFlow
カスタムリソース (CR) の永続性設定を使用している場合は、カスタムスキーマ名を指定できます。
手順
- kogito-ddl-9.102.0.redhat-00005-db-scripts.zip ロケーションから DDL スクリプトをダウンロードします。
- ファイルをデプロイメントします。
ターゲットである PostgreSQL データベースの root ディレクトリーにある
.sql
ファイルを実行します。ファイルがバージョン番号の順序で実行されることを確認してください。以下に例を示します。
-
V1.35.0__create_runtime_PostgreSQL.sql
-
V10.0.0__add_business_key_PostgreSQL.sql
V10.0.1__alter_correlation_PostgreSQL.sql
注記ファイルバージョン番号は、OpenShift Serverless Logic Operator のバージョン管理に関連付けられていません。
-