Expand description
Database Migration Runner
This module provides utilities for applying and tracking database schema migrations.
§Features
- Version-tracked migrations with automatic ordering
- Idempotent migration application (safe to run multiple times)
- Transaction-wrapped migrations for atomicity
- Migration history tracking in
schema_migrationstable - Rollback support for reversible migrations
- Dry-run mode for previewing changes
§Usage
ⓘ
use oxify_storage::{DatabasePool, migration_runner::MigrationRunner};
let pool = DatabasePool::new(config).await?;
let runner = MigrationRunner::new(pool);
// Run all pending migrations
let applied = runner.run_pending_migrations().await?;
println!("Applied {} migrations", applied.len());
// Check migration status
let status = runner.get_migration_status().await?;
for migration in status {
println!("{}: {} - {}", migration.version, migration.name,
if migration.applied { "applied" } else { "pending" });
}Structs§
- Migration
- Migration definition
- Migration
Runner - Migration runner for applying and tracking database migrations
- Migration
Status - Migration status information