5.5. 데이터베이스 스키마 초기화
PostgreSQL 지속성과 함께 SonataFlow
를 사용하는 경우 Flyway를 활성화하거나 DDL(Data Definition Language) 스크립트를 사용하여 데이터베이스 스키마를 수동으로 적용하여 데이터베이스 스키마를 초기화할 수 있습니다.
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 구성
네임스페이스 내의 모든 워크플로우에 공통 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 데이터베이스의 루트 디렉터리에 있는
.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 버전 관리와 관련이 없습니다.
-