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.