Expand description
Schema migration support for database evolution.
This module provides mechanisms to manage database schema changes over time. As applications evolve, their data structures change, and migrations enable safe transformation of existing data.
§Migration Process
A migration:
- Defines source and target schema versions
- Specifies transformation steps for affected data
- Is executed automatically when opening a database with a different schema version
§Creating Migrations
ⓘ
use nitrite::migration::{Migration, MigrationStep};
let migration = Migration::create(1, 2)
.add_instruction(/* ... */)
.finalize();
let db = Nitrite::builder()
.schema_version(2)
.add_migration(migration)
.open_or_create(None, None)?;§Migration Types
- Collection Instructions: Add/remove collections, create indexes
- Repository Instructions: Define object repository structure
- Database Instructions: Global database-level changes
§Atomicity
Migrations are applied atomically - either all changes succeed or none are applied. If a migration fails, the database is rolled back to its previous state.
Structs§
- Collection
Instruction Builder - Builder for collection-level instructions.
- Database
Instruction Builder - Builder for database-level instructions.
- Instruction
Set - Default implementation of InstructionSet
- Migration
- Abstract base class for user-defined migrations.
- Migration
Manager - Manages database migrations including version tracking and execution
- Migration
Step - Represents a single migration step with its type and arguments.
- Repository
Instruction Builder - Builder for repository-level instructions.
Enums§
- Instruction
Type - All instruction types supported by the migration system.
- Migration
Arguments - Type-erased arguments container for migration operations.
- Migration
Fn - Unified wrapper enum for all migration function closures that can be type-erased and downcasted.
Traits§
- Collection
Instruction - Collection-level migration instructions.
- Database
Instruction - Database-level migration instructions.
- Instruction
- Base trait for all migration instructions.
- Repository
Instruction - Repository-level migration instructions.