Initially I was getting this exception while starting my service
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration$LiquibaseConfiguration.liquibase(LiquibaseAutoConfiguration.java:105)
The following method did not exist:
liquibase.integration.spring.SpringLiquibase.setLiquibaseSchema(Ljava/lang/String;)V
The method's class, liquibase.integration.spring.SpringLiquibase, is available from the following locations:
jar:file:/C:/Users/ashish/.gradle/caches/modules-2/files-2.1/org.liquibase/liquibase-core/3.5.5/c65051f327382018bd09c30380f25eac96f210da/liquibase-core-3.5.5.jar!/liquibase/integration/spring/SpringLiquibase.class
It was loaded from the following location:
file:/C:/Users/ashish/.gradle/caches/modules-2/files-2.1/org.liquibase/liquibase-core/3.5.5/c65051f327382018bd09c30380f25eac96f210da/liquibase-core-3.5.5.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of liquibase.integration.spring.SpringLiquibase
My dependencies
buildscript {
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
classpath "com.oracle.database.jdbc:ojdbc8:$oracleVersion"
classpath ("org.liquibase:liquibase-gradle-plugin:1.2.4")
}
}
dependencies {
compile "org.springframework.cloud:spring-cloud-starter-netflix-eureka-client"
compile "org.springframework.cloud:spring-cloud-starter-netflix-hystrix"
compile 'org.springframework.boot:spring-boot-configuration-processor'
compile "org.springframework.boot:spring-boot-starter-validation"
compile "org.springframework.boot:spring-boot-starter-data-jpa"
compile "org.liquibase:liquibase-core:3.5.5"
}
I was able to fix this by removing liquibase-core version , like this
compile ("org.liquibase:liquibase-core")
Now when I run my service, this time I am facing privileges issue and not able to figure it out
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is
liquibase.exception.LockException: liquibase.exception.DatabaseException: ORA-01950: no privileges on tablespace 'VMSS_TBS'
[Failed SQL: INSERT INTO VMSSTXN.DATABASECHANGELOGLOCK (ID, LOCKED) VALUES (1, 0)]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
I tried setting grants but that didn't worked for me. Can someone please help me here ?
CodePudding user response:
In the Oracle Docs, this error says:
ORA-01950: no privileges on tablespace 'string'
Cause: User does not have privileges to allocate an extent in the specified tablespace.
Action: Grant the user the appropriate system privileges or grant the user space resource on the tablespace.
According to dba-oracle.com you can solve ORA-01950 by either:
ALTER USER <username> QUOTA 100M ON <tablespace name>
or
GRANT UNLIMITED TABLESPACE TO <username>
And make sure you have been granted Connect, Resources roles because you'll need Create table privileges.