Crate parsql_migrations

Crate parsql_migrations 

Source
Expand description

§parsql-migrations

Type-safe database migration system for parsql.

This crate provides a flexible and safe way to manage database schema changes across multiple database backends (PostgreSQL, SQLite, etc.).

§Features

  • Type-safe migration definitions
  • Support for SQL and programmatic migrations
  • Transaction support with automatic rollback
  • Multi-database backend support
  • Async runtime support
  • Migration validation and checksums

§Example

use parsql_migrations::{Migration, MigrationConnection, MigrationError};

struct CreateUsersTable;

impl Migration for CreateUsersTable {
    fn version(&self) -> i64 { 1 }
    fn name(&self) -> &str { "create_users_table" }
     
    fn up(&self, conn: &mut dyn MigrationConnection) -> Result<(), MigrationError> {
        conn.execute(
            "CREATE TABLE users (
                id BIGSERIAL PRIMARY KEY,
                name VARCHAR(255) NOT NULL
            )"
        )
    }
     
    fn down(&self, conn: &mut dyn MigrationConnection) -> Result<(), MigrationError> {
        conn.execute("DROP TABLE IF EXISTS users")
    }
}

Re-exports§

pub use error::MigrationError;
pub use traits_simple::Migration;
pub use traits_simple::MigrationConnection;
pub use types::MigrationStatus;
pub use types::MigrationReport;
pub use types::MigrationDetails;
pub use runner_simple::MigrationRunner;
pub use config::MigrationConfig;

Modules§

config
Configuration options for the migration system.
error
Error types for the migration system.
prelude
Prelude module for convenient imports
runner_simple
Migration runner implementation using simplified traits.
traits_simple
Simplified migration traits that avoid dyn compatibility issues.
types
Common types used throughout the migration system.