[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › local‑first/Schema

Database schema definition and validation.

## Functions

| Function                                                                                                           | Description                                                                                                               |
| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| [createQueryBuilder](https://evolu.dev/docs/api-reference/common/local-first/Schema/functions/createQueryBuilder)               | Creates a query builder from a [EvoluSchema](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema). |
| [ensureSqliteSchema](https://evolu.dev/docs/api-reference/common/local-first/Schema/functions/ensureSqliteSchema)               | -                                                                                                                         |
| [evoluSchemaToSqliteSchema](https://evolu.dev/docs/api-reference/common/local-first/Schema/functions/evoluSchemaToSqliteSchema) | -                                                                                                                         |
| [getEvoluSqliteSchema](https://evolu.dev/docs/api-reference/common/local-first/Schema/functions/getEvoluSqliteSchema)           | -                                                                                                                         |

## Interfaces

| Interface                                                                                       | Description                                                                                                                                                                                                                                               |
| ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [MutationChange](https://evolu.dev/docs/api-reference/common/local-first/Schema/interfaces/MutationChange)   | A DbChange is a change to a table row. Together with a unique [Timestamp](https://evolu.dev/docs/api-reference/common/local-first/Timestamp/variables/Timestamp), it forms a [CrdtMessage](https://evolu.dev/docs/api-reference/common/local-first/Storage/interfaces/CrdtMessage). |
| [MutationOptions](https://evolu.dev/docs/api-reference/common/local-first/Schema/interfaces/MutationOptions) | -                                                                                                                                                                                                                                                         |
| [SqliteSchemaDep](https://evolu.dev/docs/api-reference/common/local-first/Schema/interfaces/SqliteSchemaDep) | -                                                                                                                                                                                                                                                         |
| [SystemColumns](https://evolu.dev/docs/api-reference/common/local-first/Schema/interfaces/SystemColumns)     | System columns that are implicitly defined by Evolu.                                                                                                                                                                                                      |

## Type Aliases

| Type Alias                                                                                                            | Description                                                                                                                                                                                                                                                                                                          |
| --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AnyStandardSchemaV1](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/AnyStandardSchemaV1)             | Any [StandardSchemaV1](https://evolu.dev/docs/api-reference/common/Type/interfaces/StandardSchemaV1).                                                                                                                                                                                                                             |
| [CreateQuery](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/CreateQuery)                             | -                                                                                                                                                                                                                                                                                                                    |
| [EvoluSchema](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema)                             | Defines the schema of an Evolu database.                                                                                                                                                                                                                                                                             |
| [IndexesConfig](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/IndexesConfig)                         | -                                                                                                                                                                                                                                                                                                                    |
| [InsertValues](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/InsertValues)                           | Insert values: `id` omitted (auto-generated), nullable columns optional, non-nullable columns required.                                                                                                                                                                                                              |
| [Mutation](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/Mutation)                                   | Mutation function type. Accepts already-validated values — validation is the caller's responsibility using any Standard Schema library (Evolu Type, Zod, Valibot, ArkType, etc.).                                                                                                                                    |
| [MutationKind](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/MutationKind)                           | -                                                                                                                                                                                                                                                                                                                    |
| [MutationValues](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/MutationValues)                       | Derives the expected values type for a mutation from a table's column schemas and a [MutationKind](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/MutationKind).                                                                                                                                     |
| [NullableColumnsToOptional](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/NullableColumnsToOptional) | Makes columns whose output type includes `null` optional.                                                                                                                                                                                                                                                            |
| [OptionalColumnKeys](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/OptionalColumnKeys)               | -                                                                                                                                                                                                                                                                                                                    |
| [RequiredColumnKeys](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/RequiredColumnKeys)               | -                                                                                                                                                                                                                                                                                                                    |
| [SchemaValidationError](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/SchemaValidationError)         | Schema validation error that shows clear, readable messages                                                                                                                                                                                                                                                          |
| [TableSchema](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/TableSchema)                             | A table schema: column names mapped to Standard Schema validators.                                                                                                                                                                                                                                                   |
| [UpdateValues](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/UpdateValues)                           | Update values: `id` required, all other columns optional. Includes `isDeleted` for soft deletes.                                                                                                                                                                                                                     |
| [UpsertValues](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/UpsertValues)                           | Upsert values: `id` required, nullable columns optional, non-nullable columns required. Includes `isDeleted` for soft deletes.                                                                                                                                                                                       |
| [ValidateColumnTypes](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/ValidateColumnTypes)             | -                                                                                                                                                                                                                                                                                                                    |
| [ValidateIdColumnType](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/ValidateIdColumnType)           | -                                                                                                                                                                                                                                                                                                                    |
| [ValidateNoSystemColumns](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/ValidateNoSystemColumns)     | -                                                                                                                                                                                                                                                                                                                    |
| [ValidateSchema](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchema)                       | Validates an [EvoluSchema](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/EvoluSchema) at compile time, returning the first error found as a readable string literal type. This approach provides much clearer and more actionable TypeScript errors than the default, which are often hard to read. |
| [ValidateSchemaHasId](https://evolu.dev/docs/api-reference/common/local-first/Schema/type-aliases/ValidateSchemaHasId)             | -                                                                                                                                                                                                                                                                                                                    |

## Variables

| Variable                                                                                               | Description                                          |
| ------------------------------------------------------------------------------------------------------ | ---------------------------------------------------- |
| [kysely](https://evolu.dev/docs/api-reference/common/local-first/Schema/variables/kysely)                           | -                                                    |
| [systemColumns](https://evolu.dev/docs/api-reference/common/local-first/Schema/variables/systemColumns)             | -                                                    |
| [SystemColumns](https://evolu.dev/docs/api-reference/common/local-first/Schema/variables/SystemColumns-1)           | System columns that are implicitly defined by Evolu. |
| [systemColumnsWithId](https://evolu.dev/docs/api-reference/common/local-first/Schema/variables/systemColumnsWithId) | -                                                    |