如何让Spring为JdbcMetadataStore创建相应的模式?

我想使用JDBC元数据存储,如下所述: https://docs.spring.io/spring-integration/docs/5.2.0.BUILD-SNAPSHOT/reference/html/jdbc.html#jdbc-metadata-store

报价:

org.springframework work.Integration.jdbc包具有数据库架构 几个RDMBS供应商的脚本。例如,下面的清单 显示元数据表的H2 DDL:

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.

另外,在我的项目中,我使用基于Bean(实体)定义的架构自动生成,因此spring.jpa.hibernate.ddl-auto = none+将架构从JAR复制到本地shema.sql不是一个选项

JDBC

spring.jpa.hibernate.ddl-auto与Spring Integration推荐答案支持完全无关。那个是针对JPA的,其实现方式与shema.sql完全不同。

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

请参阅各自的Spring Boot文档: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应该非常适合您,并且完全不会影响任何其他可能的选项。

相关文章