Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spring Boot 3.2 is not compatible with older versions of Liquibase #38522

Closed
ebussieres opened this issue Nov 23, 2023 · 6 comments
Closed

Spring Boot 3.2 is not compatible with older versions of Liquibase #38522

ebussieres opened this issue Nov 23, 2023 · 6 comments
Labels
type: bug A general bug
Milestone

Comments

@ebussieres
Copy link

ebussieres commented Nov 23, 2023

Spring-boot 3.2.0 seems to have introduced a regression. I am using liquibase with a liquibase parameters in a sql script.

When setting the flag test-rollback-on-update to true, there's a checksum validation error when performing the rollback step. It seems to be related when you use a liquibase parameter in a sql script (see here and here)

There's a demo available here which demonstrate the regression. Just run the test to see the problem.

If you change the spring boot version to 3.1.6, eveything's working fine.

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Nov 23, 2023
@ebussieres ebussieres changed the title Spring-Boot 3.2.0 Regression - Checksum error with liquibase when using liquibase parameters and test-rollback-on-update Spring-Boot 3.2.0 Regression - Liquibase checksum error when using liquibase parameters and test-rollback-on-update Nov 23, 2023
@ebussieres ebussieres changed the title Spring-Boot 3.2.0 Regression - Liquibase checksum error when using liquibase parameters and test-rollback-on-update [3.2.0 Regression] - Liquibase checksum error when using liquibase parameters and test-rollback-on-update Nov 23, 2023
@wilkinsona
Copy link
Member

I don't think this is a Spring Boot regression. The same problem occurs with Spring Boot 3.1.6 if you use Liquibase 4.24.0 (the default version in Spring Boot 3.2) or 4.25.0 (the latest version at the time of writing). Please report the problem to the Liquibase team.

Unfortunately, you cannot downgrading Liquibase to 4.23.3 with Spring Boot 3.2 (the default version of Spring Boot 3.1.6) as it does not contain the liquibase.UpdateSummaryOutputEnum class upon which Spring Boot now depends.

@wilkinsona wilkinsona added the for: team-meeting An issue we'd like to discuss as a team to make progress label Nov 23, 2023
@ebussieres
Copy link
Author

I've opened an issue to the Liquibase team too

@wilkinsona
Copy link
Member

Thanks, @ebussieres. It looks like it's going to be fixed on the Liquibase side. I'll leave this one open for now though as I think we should consider making a change to LiquibaseProperties so that it doesn't directly rely upon the recently introduced Liquibase enums.

@EvaristeGalois11
Copy link
Contributor

it does not contain the liquibase.UpdateSummaryOutputEnum class upon which Spring Boot now depends.

we should consider making a change to LiquibaseProperties so that it doesn't directly rely upon the recently introduced Liquibase enums.

If you are interested @wilkinsona I still have the patch of my first attempt at introducing those two properties where I used some local enums in LiquibaseProperties and converted them in LiquibaseAutoConfiguration. This doesn't get rid of the enums, but move them to another class. I can tidy it up a bit and submit it as a PR to discuss it further.

I'm not sure if this is what you mean with not having LiquibaseProperties rely upon the two enums or you were talking more in general though.

@philwebb
Copy link
Member

We're going to look at duplicating the enums in our code (with tests to keep them in sync) so that folks can downgrade.

@EvaristeGalois11 thanks for the offer of a PR, but this one should be pretty easy for us to take care of ourselves.

@philwebb philwebb added type: bug A general bug and removed status: waiting-for-triage An issue we've not yet triaged for: team-meeting An issue we'd like to discuss as a team to make progress labels Nov 27, 2023
@philwebb philwebb changed the title [3.2.0 Regression] - Liquibase checksum error when using liquibase parameters and test-rollback-on-update Spring Boot 3.2 is not compatible with older versions of Liquibase Nov 27, 2023
@philwebb philwebb added this to the 3.2.x milestone Nov 27, 2023
@wilkinsona wilkinsona modified the milestones: 3.2.x, 3.2.1 Nov 28, 2023
@radarsh
Copy link

radarsh commented Oct 14, 2024

This is quite a significant change from Liquibase and warrants a mention in the Spring Boot 3.2 release notes. Also, if they fix the backwards compatibility issue on Liquibase, possibly including it the upcoming Spring 3.4 release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug A general bug
Projects
None yet
Development

No branches or pull requests

6 participants