Skip to content
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

SQLite extension loading via sqlx.toml for CLI and query macros #3713

Open
wants to merge 4 commits into
base: sqlx-toml
Choose a base branch
from

Conversation

djarb
Copy link

@djarb djarb commented Jan 29, 2025

fixes issue #3330 by allowing the query checking macros to load SQLite extensions specified in sqlx.toml.

Related to that, also allows the CLI to load the SQLite extensions specified in sqlx.toml when running migrations

Copy link
Collaborator

@abonander abonander left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm very keen in landing this, but besides fixing the build, it does also need some sort of test to prove that it works, and ideally a compile-checked example that shows how to use it. In #3383 I realized I could take out two birds with one stone by adding some example projects showing off the new configuration. I'd suggest doing the same.

@abonander
Copy link
Collaborator

(I'm just now realizing the build failures are from #3383 itself so disregard that.)

@djarb
Copy link
Author

djarb commented Jan 31, 2025

I'll be happy to add an example, but there's a complication: to demonstrate this functionality, it's necessary to load a SQLite extension, and that requires that the example is dependent on having that extension installed. Are you okay with having an example that has a third-party dependency which is not shipped with SQLx? If so, what is your preference for how I structure that?

@abonander
Copy link
Collaborator

Our CI already downloads an extension from https://github.com/nalgeon/sqlean/ for testing:

- run: mkdir /tmp/sqlite3-lib && wget -O /tmp/sqlite3-lib/ipaddr.so https://github.com/nalgeon/sqlean/releases/download/0.15.2/ipaddr.so

One thing is that for Unix platforms, you need to show the user either how to set LD_LIBRARY_PATH or to specify a relative path to the extension.

@djarb djarb requested a review from abonander February 3, 2025 11:06
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.

2 participants