本文介紹了如何讓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
應該非常適合您,并且完全不會影響任何其他可能的選項。
這篇關于如何讓Spring為JdbcMetadataStore創建相應的模式?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,