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

Enable FTS5 in SQLite migrations #582

Merged
merged 2 commits into from
Oct 14, 2024
Merged

Enable FTS5 in SQLite migrations #582

merged 2 commits into from
Oct 14, 2024

Conversation

jadudm
Copy link
Contributor

@jadudm jadudm commented Oct 5, 2024

This statically compiles in the FTS5 module, allowing dbmate to handle migrations that use the full-text search features of SQLite.

History

Issue #237 raised the question of handling migrations that included FTS5 tables. It was later converted to a discussion (#357).

Solution

It is possible to enable the feature in the statically-compiled SQLite that ships with dbmate via a feature flag. Adding the sqlite_fts5 flag to the Makefile embeds this feature statically.

Testing

An additional test was added with a CREATE VIRTUAL TABLE statement that leverages the FTS5 module. This test fails when dbmate is compiled without the feature flag. After adding the flag, this test passes.

make test and make docker-all pass.

Confirmed that it works in practice locally on Ubuntu 22.04.

Additional info

For information about the extension:
https://www.sqlite.org/fts5.html

For the feature flag for mattn/go-sqlite3:
https://github.com/mattn/go-sqlite3/?tab=readme-ov-file#feature--extension-list

This statically compiles in the FTS5 module, allowing dbmate to handle
migrations that use the full-text search features of SQLite.

For information about the extension:
https://www.sqlite.org/fts5.html

For the feature flag for mattn/go-sqlite3:
https://github.com/mattn/go-sqlite3/?tab=readme-ov-file#feature--extension-list
Copy link
Collaborator

@dossy dossy left a comment

Choose a reason for hiding this comment

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

Please let me know if I need to elaborate on any of the review feedback. Thanks!

@jadudm
Copy link
Contributor Author

jadudm commented Oct 10, 2024

No elaboration needed at all; many thanks for the review!

This renames the test associated with enabling FTS5 support in dbmate
for SQLite, simplifies the test (it performed unnecessary operations),
and fixed a typo.
@jadudm jadudm requested a review from dossy October 11, 2024 22:08
@dossy dossy merged commit 5b1bbeb into amacneil:main Oct 14, 2024
10 checks passed
@valeriakononenko
Copy link

Hi! When do you plan to release it?

@amacneil
Copy link
Owner

amacneil commented Nov 9, 2024

Done!

https://github.com/amacneil/dbmate/releases/tag/v2.22.0

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

Successfully merging this pull request may close these issues.

4 participants