Skip to content

test: db migrations#1715

Merged
pawelstepien-da merged 39 commits into
mainfrom
pawel/db-tests
May 18, 2026
Merged

test: db migrations#1715
pawelstepien-da merged 39 commits into
mainfrom
pawel/db-tests

Conversation

@pawelstepien-da
Copy link
Copy Markdown
Contributor

@pawelstepien-da pawelstepien-da commented May 6, 2026

In SQL stores I added tests for each migration that validates that expected effects are applied to schema, relations and data in case of up/down. They are run against SQLite and Postgres databases.

I made wallet gateway e2e tests with ping example run against both SQLite and Postgres database.

I added a mechanism validating that every migration has a corresponding test file (same file name), to assure every migration was tested against both SQL dialects before merging.

I added mechanism that validates immutability of migrations - each migration file gets hashed and put into migrations.lock of a store. If a migration gets unintentionally edited than CI will fail. To add a new migration, or potentially conciously edit existing, use yarn migrations:update-lock

Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
…-tests

Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>

# Conflicts:
#	yarn.lock
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
…-tests

Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>

# Conflicts:
#	yarn.lock
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
…-tests

Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
…-tests

Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>

# Conflicts:
#	.github/CI.md
#	.github/workflows/build.yml
#	yarn.lock
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
…-tests

Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
…-tests

Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>

# Conflicts:
#	yarn.lock
Signed-off-by: Pawel Stepien <pawel.stepien@digitalasset.com>
@pawelstepien-da pawelstepien-da linked an issue May 13, 2026 that may be closed by this pull request
@pawelstepien-da pawelstepien-da marked this pull request as ready for review May 13, 2026 14:10
@pawelstepien-da pawelstepien-da requested review from a team as code owners May 13, 2026 14:10
@mjuchli-da
Copy link
Copy Markdown
Contributor

mjuchli-da commented May 18, 2026

Great work, and I am generally in favor of the integrity check to verify that the migration's content was not changed.
However, I also think there are valid concerns laid out here:kysely-org/kysely#984 (comment)

In a follow-up PR (low prio, #1798), we might want to feature-flag the integrity in case we need to alter a past migration.

@pawelstepien-da pawelstepien-da merged commit abd0ab7 into main May 18, 2026
27 checks passed
@pawelstepien-da pawelstepien-da deleted the pawel/db-tests branch May 18, 2026 09:44
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.

Database testing

2 participants