SQLite Support (#441)
This PR adds support for using SQLite as the system database. This is intended to be used for lightweight development and testing, allowing users to get started with DBOS or test their DBOS apps without needing a Postgres database. It may also be useful for embedded applications. The SQLite system database is 100% feature complete. To minimize code duplication, we use SQLAlchemy to implement virtually all system database operations cross-dialect. The only operations that need custom implementations in Postgres and SQLite are: 1. Database creation/migration/teardown. 2. Notification management (using LISTEN/NOTIFY in Postgres and polling in SQLite). 3. Exception categorization (differentiating primary key conflicts from other errors, for example). The test matrix has been reconfigured to run all tests against both Postgres and SQLite. Only a handful of Postgres-specific tests run on Postgres only. DBOS now uses SQLite by default if no database URL is provided to it. This is to make it easier to get started on DBOS—you can now try it from anywhere without Postgres.
P
Peter Kraft committed
8629cb25b4fd9100d579cd4e4a710c618c081e7d
Parent: 97329c7
Committed by GitHub <noreply@github.com>
on 8/27/2025, 5:30:46 PM