1

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

引用:

org.springframework.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 文件创建相应的模式。

我怎样才能做到这一点?

附言

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

4

1 回答 1

2

spring.jpa.hibernate.ddl-autoSpring Integration JDBC 支持完全无关。那个是用于 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应该让您度过愉快的一天,并且完全不会影响任何其他可能的选项。

于 2019-12-25T14:52:22.503 回答