Skip to content

Add support for Turso (sqlite rewrite, not Libsql)#1393

Open
RafaelZasas wants to merge 5 commits into
golang-migrate:masterfrom
RafaelZasas:master
Open

Add support for Turso (sqlite rewrite, not Libsql)#1393
RafaelZasas wants to merge 5 commits into
golang-migrate:masterfrom
RafaelZasas:master

Conversation

@RafaelZasas

Copy link
Copy Markdown

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.

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.
@RafaelZasas

Copy link
Copy Markdown
Author

Seems like the tests for 1.25.x is failing for something completely unrelated to these changes

@RafaelZasas

Copy link
Copy Markdown
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.

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.

1 participant