Add support for Turso (sqlite rewrite, not Libsql)#1393
Open
RafaelZasas wants to merge 5 commits into
Open
Conversation
Implements database.Driver for Turso (CGO-free SQLite rewrite) using turso.tech/database/tursogo. Mirrors the structure of database/sqlite3/ with extensions for Turso-specific config (encryption, experimental features, busy timeout, vfs).
Add the standard database/testing test suite plus coverage for custom types (uuid, varchar, boolean, timestamp, STRICT tables) and AEGIS-256 encryption with key rotation rejection. Remove VACUUM from Drop() — Turso doesnt support plain VACUUM yet (only VACUUM INTO)
Mirrors the sqlite3 build-tag pattern. Build with -tags turso to include the driver in the migrate binary. Refs golang-migrate#1382.
Author
|
Seems like the tests for 1.25.x is failing for something completely unrelated to these changes |
Author
|
For any maintainers who are looking at this PR, I get that it is un-nerving to see a driver for a database that is not even stable yet, and subject to frequent changes. What I can say is that I have been using my fork for my own project and will continue to maintain the migrations functionality for Turso, since I legitimately need it. If this is merged, you can always reach out to me to take on the responsibility of handling any issues that arise with the driver. If its not planned to be merged, I would greatly appreciate a little bit of feedback so that I can take it into my own fork and maintain it for my own purposes. |
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.
Turso is the rust based re write of Sqlite to bring requested features like MVCC, full text search, custom types, encryption, indexing and more to single file databases.
This PR is made in response to issue #1382.
Turso is still in Beta, however the interface is unlikely to change, other than experimental flags, which can be omitted by the user.