Skip to content

Conversation

@rPraml
Copy link
Contributor

@rPraml rPraml commented Nov 22, 2023

Hello Rob, we would like to have some options to override how and if the idx file is used.

We have two use cases:

  1. We want to ensure, that the checksums in the idx file will match to the checksum of the local script. (As far as I see the checksums in the existing index file of your test will not match to the checksum of the SQL files.

As far as I understand the code, the checksum is never calculated or verified at run time. (This means, I can edit SQL files without getting problems, or when merging two branches)

So the setForceLocalCheck = true option in the build pipeline, will ensure, that the checksum in idx file will match to the content

  1. We have migration unit tests, where we check if existing data will be properly migrated.

Imagine, you have a migration in 1.1 where you want to convert everything in a table to uppercase, So we have in /src/main the standard migrations:

  • 1.0__initial.sql (e.g. create table foo(varchar(32) name))
  • 1.1__make_all_uppercase.sql (e.g. update foo set name = ucase(name))

When we verify the migrations in some unit tests, we run them on an empty database. To get data in the DB, we "insert" some scripts in /src/test

  • 1.0.99__insert_test_data.sql (e.g. insert into foo values ('Roland'))

Prior #91 - ebean migration discovered all migrations in the classpath and has executed

  • /src/main/resources/migration/1.0__initial.sql
  • /src/test/resources/migration/1.0.99__insert_test_data.sql
  • /src/main/resources/migration/1.1__make_all_uppercase.sql

A java assert can then check, if everything is properly migrated.

(Note: The conversion to uppercase was just an example. In real life, we have much more complex migrations.)

This PR would help us to cover both use cases (while use case 2 is more important than 1)

@rPraml rPraml changed the title Add control options to override and/or validate index file [WIP] Add control options to override and/or validate index file Nov 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant