--- index: 10 --- # Database ### Schema Our data schema is defined using Prisma, you can [view it on GitHub](https://github.com/spacedriveapp/spacedrive/blob/main/core/prisma/schema.prisma). ![A cool screenshot of the Spacedrive schema](/schema.webp) ### 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. ![A Spacedrive library database file open in Table Plus](/database-table-plus.webp) ### 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.