Architecture
Database
Schema
Our data schema is defined using Prisma, you can view it on GitHub.
Prisma Client Rust
We use Prisma Client Rust as a database ORM, it allows us to use Prisma to define our schema and generate migrations based on modifications to that schema.
Migrations
Migrations are run by the Prisma migration engine on app launch.
Database file
The databases file is SQLite and can be opened in any SQL viewer.
Environment Variables
The following environment variables can be used to control database behavior:
-
SD_ACCEPT_DATA_LOSS
: When set to"true"
, allows operations that might result in data loss. This should only be used in development or testing environments where data loss is acceptable. -
SD_FORCE_RESET_DB
: When set to"true"
, forces a reset of the database. This will clear all existing data. Use with extreme caution and only in development environments.
You can set these variables when running the app, e.g. SD_ACCEPT_DATA_LOSS=true pnpm tauri dev
.
These environment variables are primarily used during development and testing. They should not be used in production environments unless you fully understand the implications.
⚠️ Warning: Setting these variables can result in permanent data loss. Use them only in development environments or when you explicitly need to reset or modify database behavior.