Module migration_runner

Module migration_runner 

Source
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_migrations table
  • 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
MigrationRunner
Migration runner for applying and tracking database migrations
MigrationStatus
Migration status information