5.5. 数据库架构初始化


当您将 SonataFlow 与 PostgreSQL 持久性搭配使用时,您可以通过启用 Flyway 来初始化数据库架构,或使用数据定义语言(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
Copy to Clipboard Toggle word wrap

您可以使用以下示例在 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: ...
Copy to Clipboard Toggle word wrap

5.5.3. 使用 SonataFlowPlatform 属性进行 Flyway 配置

要将通用 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
Copy to Clipboard Toggle word wrap

5.5.4. 使用 DDL 脚本初始化手动数据库

如果您希望手动初始化,则必须通过确保 kie.flyway.enabled 属性没有配置或明确设置为 false 来禁用 Flyway。

  • 默认情况下,每个工作流都使用与工作流名称相等的 schema 名称。确保为每个工作流手动应用模式初始化。
  • 如果您使用 SonataFlow 自定义资源(CR)持久性配置,您可以指定自定义模式名称。

流程

  1. kogito-ddl-9.102.0.redhat-00005-db-scripts.zip 位置下载 DDL 脚本。
  2. 提取文件。
  3. 运行位于目标 PostgreSQL 数据库的根目录中的 .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 版本关联。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat