Skip to content

feat: create sqlx.toml format #3383

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

Open
wants to merge 62 commits into
base: main
Choose a base branch
from
Open

feat: create sqlx.toml format #3383

wants to merge 62 commits into from

Conversation

abonander
Copy link
Collaborator

@abonander abonander commented Jul 27, 2024

Reference sqlx.toml: https://github.com/launchbadge/sqlx/blob/sqlx-toml/sqlx-core/src/config/reference.toml

Once this is implemented, I'm planning on starting an alpha release cycle for 0.9.0 so that we can test this. It's not expected to be a breaking change but it's a large enough feature that it should probably go in a new major release, and there's a few other breaking API changes waiting in the wings.

The keys listed here are just the ones I've identified as needed for an MVP. Other keys may be added later backwards-compatibly.

Breaking Changes

  • Significant changes to the Migrate trait
  • sqlx::migrate::resolve_blocking() is now #[doc(hidden)] and thus SemVer-exempt

Bikeshedding checklist:

  • snake_case or kebab-case for keys?
  • macros.column_overrides should maybe be called macros.table_overrides instead?
    • since the next level in the key is the table name, not the column name?

Implementation checklist

  • [common]
    • database-url-var
      • support in query macros
      • support in sqlx-cli
      • test
  • [macros]
    • preferred-crates
      • date-time
        • test
      • numeric
        • test
    • table-overrides
      • test
    • type-overrides
      • test
  • [migrate]
    • create-schemas
      • support in migrate!()
      • support in sqlx-cli
      • test (examples/postgres/multi-tenant)
    • table-name
      • support in migrate!()
      • support in sqlx-cli
      • test (examples/postgres/multi-tenant)
    • migrations-dir
      • support in migrate!()
      • support in #[sqlx::test]?
      • support in sqlx-cli
      • test (examples/postgres/multi-tenant)
    • ignored-chars
      • support in migrate!()
      • support in sqlx-cli
      • test
    • defaults
      • migration-type
        • test
      • migration-versioning
        • test

closes #121
closes #3412

@abonander abonander force-pushed the sqlx-toml branch 2 times, most recently from 2b7fdba to 46dd260 Compare July 28, 2024 01:51
@abonander abonander force-pushed the sqlx-toml branch 7 times, most recently from fd557ad to 6c886f8 Compare August 2, 2024 03:41
@abonander abonander added this to the 0.9.0 milestone Sep 9, 2024
@abonander abonander force-pushed the sqlx-toml branch 3 times, most recently from af39902 to b67a83b Compare September 9, 2024 07:24
@abonander abonander force-pushed the sqlx-toml branch 2 times, most recently from 496f631 to 6cc3ac0 Compare September 18, 2024 08:58
@abonander abonander force-pushed the sqlx-toml branch 3 times, most recently from cfbbda7 to 29d56ee Compare June 3, 2025 01:06
@abonander abonander changed the title WIP: create sqlx.toml format feat: create sqlx.toml format Jun 3, 2025
@abonander abonander force-pushed the sqlx-toml branch 2 times, most recently from 72f18c3 to f46f747 Compare June 4, 2025 23:01
Normally I generate these when cutting the release, but I wanted to take time to editorialize this one.
@abonander
Copy link
Collaborator Author

abonander commented Jun 5, 2025

It's occurred to me that the sqlx-toml feature may not be desirable as a default since it's not strictly necessary for downstream library crates, and would be difficult to disable due to feature unification.

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

Successfully merging this pull request may close these issues.

sqlx uses time instead of chrono Question: best way to use sqlx with connections to two different databases?
4 participants