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

TypeScript SQLite support #366

Merged
merged 17 commits into from
Jun 15, 2021
Merged

TypeScript SQLite support #366

merged 17 commits into from
Jun 15, 2021

Conversation

lolopinto
Copy link
Owner

@lolopinto lolopinto commented Jun 14, 2021

This adds SQLite support for the API.

Currently, only supported via the DB_CONNECTION_STRING env variable. If set to sqlite:///, it uses an in-memory instance, if set to sqlite:///{filename}, it uses the file to store the data.

It uses the better-sqlite library which claims to be better than the combo of sqlite and sqlite3.

The downside is that the better-sqlite library doesn't support an asynchronous API for many reasons so had to refactor a bunch of the code to support a synchronous API as well as asynchronous API for both reads and writes.

In scenarios where the difference doesn't matter, we still use a public facing asynchronous API and just make a synchronous call. However, for transactions, can't do that so that's where the API changes are seen the most.

SQLite seems to support both query formats:

  • SELECT * FROM tbl WHERE id = $1 and
  • SELECT * FROM tbl WHERE id = ?

we use the latter exclusively just so that we're slightly closer to MySQL support. No current plans to.

@lolopinto lolopinto merged commit f284fed into main Jun 15, 2021
@lolopinto lolopinto deleted the sqlite branch June 15, 2021 16:32
lolopinto added a commit that referenced this pull request Jun 15, 2021
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