Reputation: 1
I am using Spring Boot 2.5.9 I am attempting to generate a liquibase:diff based on my JPA Entities and a H2 database file. When I attempt to do so, I have the following error:
[INFO] Cannot load service java.util.ServiceConfigurationError: liquibase.database.Database: liquibase.ext.hibernate.database.HibernateSpringBeanDatabase Unable to get public no-arg constructor at java.util.ServiceLoader.fail (ServiceLoader.java:582) at java.util.ServiceLoader.getConstructor (ServiceLoader.java:673) at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService (ServiceLoader.java:1233) at java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext (ServiceLoader.java:1265) at java.util.ServiceLoader$2.hasNext (ServiceLoader.java:1300)
(...)
[INFO] ------------------------------------------------------------------------
[WARNING] Unknown database: Hibernate
[INFO] Performing Diff on database ADMIN @ jdbc:h2:file:./database-dev (Default Schema: PUBLIC) [WARNING] Potentially ignored key(s) in property file liquibase.properties
- 'diffChangeLogFile'
- 'outputChangeLogFile'
[INFO] Creating snapshot
[WARNING] Unable to retrieve the list of catalog names from the database metadata
[INFO] Logging exception.
[INFO] ERROR: Exception Details
[INFO] ERROR: Exception Primary Class: NullPointerException
[INFO]
[INFO] ERROR: Exception Primary Source: H2 2.2.224 (2023-09-17) [INFO] Command execution complete
Liquibase dependency in POM.xml
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
<version>4.27.0</version>
</dependency>
Plugin config in POM.xml
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>4.27.0</version>
<configuration>
<propertyFileWillOverride>true</propertyFileWillOverride>
<propertyFile>liquibase.properties</propertyFile>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate5</artifactId>
<version>4.27.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.224</version>
</dependency>
</dependencies>
</plugin>
liquibase.properties file
url=jdbc:h2:file:./database-dev;CIPHER=AES;MODE=PostgreSQL
username=admin
password=password password
outputChangeLogFile=src/main/resources/db/changelog/db.changelog.sql
changeLogFile=src/main/resources/db/changelog/db.changelog.sql
referenceUrl=hibernate:spring:com.domain.entity?dialect=org.hibernate.dialect.H2Dialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
diffChangeLogFile=src/main/resources/db/changelog/db.changelog-diff.sql
I wanted change enteties and generate a diff file comparing JPA with dev H2 file.
Upvotes: 0
Views: 84