Skip to content

cli: support custom migration templates - #4410

Open
syntrydy wants to merge 3 commits into
transact-rs:mainfrom
syntrydy:fix/4389-migration-templates
Open

syntrydy wants to merge 3 commits into
transact-rs:mainfrom
syntrydy:fix/4389-migration-templates

Conversation

@syntrydy

Copy link
Copy Markdown

Does your PR solve an issue?

Fixes #4389.

What does this PR change?

This adds support for customizing the initial contents of migrations generated by sqlx migrate add.

Users can place the following files in the migration source directory:

  • .template.sql for simple migrations
  • .template.up.sql for reversible up migrations
  • .template.down.sql for reversible down migrations

The CLI copies the matching template into each newly created migration. If a template is absent, it retains the existing default contents.

Template files are excluded when resolving migrations, so they are not treated as migrations themselves.

The available templates and fallback behavior are documented in the CLI README and command help.

Is this a breaking change?

No. Existing behavior remains unchanged when no template files are present.

Testing

  • cargo +stable test -p sqlx-core --lib migrate::source
  • cargo +stable test -p sqlx-cli --test add
  • cargo +stable fmt --all -- --check
  • cargo +stable clippy -p sqlx-cli --tests --no-deps -- -D warnings

@syntrydy

Copy link
Copy Markdown
Author

@abonander The failing SQLite matrix job appears to be unrelated to this change. All five SQLCipher tests passed, but the test process subsequently exited with SIGSEGV during shutdown. The remaining SQLite jobs were cancelled by matrix fail-fast.

I don't have permission to rerun the upstream workflow. Could you please rerun the failed jobs when convenient?

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.

allow customizing the template for migration files generated with the sqlx CLI

1 participant