customizable db locking during migration#2063
Merged
abonander merged 4 commits intolaunchbadge:mainfrom Sep 6, 2022
Merged
Conversation
abonander
requested changes
Aug 23, 2022
Co-authored-by: Austin Bonander <austin.bonander@gmail.com>
Contributor
Author
|
Please review again |
Collaborator
|
Can you run |
Contributor
Author
|
there |
Collaborator
|
The instantiation of |
Contributor
Author
|
Is that what was causing the CI to fail? Anyway, that should be good now. Perhaps I shall make a suggestion to add information about doctests here? |
mpecan
added a commit
to mpecan/sqlx
that referenced
this pull request
Feb 25, 2026
Add a `locking` parameter to `#[sqlx::test]` that controls whether an advisory lock is acquired before creating the test database schema. Defaults to `true` to preserve existing PostgreSQL behavior. Setting `locking = false` allows `#[sqlx::test]` to work with databases that speak the PostgreSQL wire protocol but do not implement advisory locks, such as CockroachDB. When disabled, migrator locking is also skipped so the entire test setup is advisory-lock-free. Follows the same pattern as `Migrator::set_locking()` (PR launchbadge#2063).
mpecan
added a commit
to mpecan/sqlx
that referenced
this pull request
Feb 25, 2026
Add a `locking` parameter to `#[sqlx::test]` that controls whether an advisory lock is acquired before creating the test database schema. Defaults to `true` to preserve existing PostgreSQL behavior. Setting `locking = false` allows `#[sqlx::test]` to work with databases that speak the PostgreSQL wire protocol but do not implement advisory locks, such as CockroachDB. When disabled, migrator locking is also skipped so the entire test setup is advisory-lock-free. Follows the same pattern as `Migrator::set_locking()` (PR launchbadge#2063).
mpecan
added a commit
to mpecan/sqlx
that referenced
this pull request
Feb 25, 2026
Add a `locking` parameter to `#[sqlx::test]` that controls whether an advisory lock is acquired before creating the test database schema. Defaults to `true` to preserve existing PostgreSQL behavior. Setting `locking = false` allows `#[sqlx::test]` to work with databases that speak the PostgreSQL wire protocol but do not implement advisory locks, such as CockroachDB. When disabled, migrator locking is also skipped so the entire test setup is advisory-lock-free. Follows the same pattern as `Migrator::set_locking()` (PR launchbadge#2063).
mpecan
added a commit
to mpecan/sqlx
that referenced
this pull request
Feb 25, 2026
Add a `locking` parameter to `#[sqlx::test]` that controls whether an advisory lock is acquired before creating the test database schema. Defaults to `true` to preserve existing PostgreSQL behavior. Setting `locking = false` allows `#[sqlx::test]` to work with databases that speak the PostgreSQL wire protocol but do not implement advisory locks, such as CockroachDB. When disabled, migrator locking is also skipped so the entire test setup is advisory-lock-free. Follows the same pattern as `Migrator::set_locking()` (PR launchbadge#2063).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
? - Why
Various pgwire databases such as CockroachDB do not support such a feature.
In such scenarios the only way to perform migrations is without locking
This PR allows the end user to choose whether to lock the DB when running migrations or not.
Default behaviour is maintained and DBs are still locked on default.
Example:
sqlx::migrate!().set_locking(false).run(&pool).await(Changes have been tested & are actively used in development of our app)