如何要求 spring 为 JdbcMetadataStore 创建相应的模式?

How to ask spring to create corresponding schema for JdbcMetadataStore?

我想使用此处描述的 jdbc 元数据存储: https://docs.spring.io/spring-integration/docs/5.2.0.BUILD-SNAPSHOT/reference/html/jdbc.html#jdbc-metadata-store

引用:

The org.springframework.integration.jdbc package has Database schema scripts for several RDMBS vendors. For example, the following listing shows the H2 DDL for the metadata table:

CREATE TABLE INT_METADATA_STORE  (
    METADATA_KEY VARCHAR(255) NOT NULL,
    METADATA_VALUE VARCHAR(4000),
    REGION VARCHAR(100) NOT NULL,
    constraint INT_METADATA_STORE_PK primary key (METADATA_KEY, REGION)
);

我在 jar 文件中找到了我的 postgresql 的架构。当然,我可以只在 pgAdmin 中复制此架构和 运行 一次,但我想要求 spring 检查我当前的架构是否存在,如果不存在 - 从 jar 文件创建相应的架构。

我怎样才能得到它?

P.S.

同样在我的项目中,我使用基于 beans(实体)定义的模式自动生成,所以 spring.jpa.hibernate.ddl-auto = none + 将模式从 jar 复制到本地 shema.sql 不是一个选项

spring.jpa.hibernate.ddl-auto 与 Spring 集成 JDBC 支持完全无关。那个是针对 JPA 的,其完成方式与 shema.sql.

完全不同

实际上,org.springframework.integration.jdbc 包中提到的那些脚本由 Spring 引导自动扫描,并在数据库中填充适当的模式。

参见相应的 Spring 引导文档:https://docs.spring.io/spring-boot/docs/2.2.2.RELEASE/reference/html/spring-boot-features.html#boot-features-integration

因此,选项 spring.integration.jdbc.initialize-schema=always 应该会让你开心,并且完全不会影响任何其他可能的选项。