在我的pom.xml中配置liquibase之后。我还在我的资源文件夹,changelog.xml中添加了这些文件,这是内容
<databaseChangeLog xmlns='http://www.liquibase.org/xml/ns/dbchangelog'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemaLocation='http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd'>
<changeSet id="001" author="Dev">
<sql>
ALTER TABLE book ADD COLUMN address VARCHAR(1024);
</sql>
</changeSet>
</databaseChangeLog>
我还在我的资源文件夹中添加了这个文件liquibase.properties,这是内容
contexts: ${liquibase.contexts}
changeLogFile: src/main/resources/changelog.xml
driver: ${jdbc.driverClassName}
url: ${jdbc.url}
username: ${jdbc.username}
verbose: true
dropFirst: false
我也像这样配置了我的pom.xml
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>3.0.5</version>
<configuration>
<propertyFile>src/main/resources/liquibase.properties</propertyFile>
</configuration>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
当我启动项目时,我从tomcat
收到此错误Caused by: java.lang.RuntimeException: Cannot run Liquibase, liquibase.datasource is not set
请问可能出错?
答案 0 :(得分:0)
如果在liquibase.properties文件中使用占位符,则还必须在pom.xml中使用以下元素启用资源过滤:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
</build>
(如果你不这样做:liquibase.properties将保留像
这样的东西url: ${jdbc.url}
当然,这不是一个有效的网址。)