![](/img/trans.png)
[英]How to access a resource file in src/main/resources/ folder in Spring Boot
[英]Liquibase not generating changeLog file in src/main/resources folder from existing DB in Spring Boot
我正在尝试通过Liquibase
和Spring Boot
在现有DB
上生成更改日志。
在终端窗口中,当我运行mvn liquibase:generateChangeLog
我可以看到整个更改日志的XML
输出正在生成并滚动,但即使在liquibase-maven-plugin
指定路径后,该文件也没有在src/main/resources
文件夹中liquibase-maven-plugin
插件配置
应用程序属性
spring.datasource.url=jdbc:oracle:thin:@//person-db:6136/person-sid
spring.datasource.username=abc
spring.datasource.password=def
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<configuration>
<changeLogFile>src/main/resources/dbChangeLog.xml</changeLogFile>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@//person-db:6136/person-sid</url>
<username>abc</username>
<password>def</password>
</configuration>
</plugin>
</plugins>
</build>
终端日志(执行 mvn liquibase:generateChangeLog 命令后)
<databaseChangeLog>
.....
<changeSet author="R649526 (generated)" id="1553629923684-9">
<createTable tableName="APPL_SNDER_TRGR_CNTL" tablespace="TS_USRT_DEV_SML_DATA">
<column name="RECEIVING_APPL_ID" type="VARCHAR2(8 BYTE)">
<constraints primaryKey="true" primaryKeyName="SYS_C0067672"/>
</column>
<column name="SNDING_APPL_ID" type="VARCHAR2(8 BYTE)">
<constraints primaryKey="true" primaryKeyName="SYS_C0067672"/>
</column>
<column name="RECEIVING_APPL_CHNL_ID" type="VARCHAR2(2 BYTE)">
<constraints primaryKey="true" primaryKeyName="SYS_C0067672"/>
</column>
<column name="LINK_DIR_CD" type="VARCHAR2(1 BYTE)"/>
<column name="SNDING_APPL_TRGR_NM" type="VARCHAR2(80 BYTE)">
<constraints nullable="false"/>
</column>
<column name="LAST_UPDT_TS" type="TIMESTAMP(6)">
<constraints nullable="false"/>
</column>
</createTable>
</changeSet>
<changeSet author="R649526 (generated)" id="1553629923684-10">
<createTable tableName="BAT_APPL_FILE_CNTL" tablespace="TS_USRT_DEV_SML_DATA">
<column name="APPL_ID" type="VARCHAR2(8 BYTE)">
<constraints primaryKey="true" primaryKeyName="SYS_C0067673"/>
</column>
<column name="BAT_FILE_CNTL_TS" type="TIMESTAMP(6)">
<constraints primaryKey="true" primaryKeyName="SYS_C0067673"/>
</column>
<column name="LINK_DIR_CD" type="VARCHAR2(1 BYTE)">
<constraints primaryKey="true" primaryKeyName="SYS_C0067673"/>
</column>
<column name="BAT_FILE_NB" type="NUMBER">
<constraints primaryKey="true" primaryKeyName="SYS_C0067673"/>
</column>
<column name="BAT_FILE_CRE_TS" type="TIMESTAMP(6)">
<constraints nullable="false"/>
</column>
<column name="BAT_FILE_MSG_CNT" type="NUMBER">
<constraints nullable="false"/>
</column>
<column name="BAT_FILE_PROC_TS" type="TIMESTAMP(6)"/>
<column name="BAT_FILE_STS_CD" type="VARCHAR2(1 BYTE)">
<constraints nullable="false"/>
</column>
<column name="BAT_FILE_RJCT_RSN_TX" type="VARCHAR2(80 BYTE)"/>
<column name="LAST_UPDT_TS" type="TIMESTAMP(6)"/>
</createTable>
</changeSet>
</databaseChangeLog>
尝试其他版本的Liquibase可能会对您有所帮助。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.0.5</version>
<configuration>
<changeLogFile>src/main/resources/dbChangeLog.xml</changeLogFile>
<driver>oracle.jdbc.OracleDriver</driver>
<url>jdbc:oracle:thin:@//person-db:6136/person-sid</url>
<username>abc</username>
<password>def</password>
</configuration>
</plugin>
</plugins>
</build>
我遇到过同样的问题。 检查了 Maven 插件的 xmldoc,碰巧您必须使用参数<outputChangeLogFile>
而不是<changeLogFile>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.