MigrationHelper

Struct MigrationHelper 

Source
pub struct MigrationHelper;
Expand description

Migration helper providing utilities for transitioning between sync and async APIs

Implementations§

Source§

impl MigrationHelper

Source

pub async fn verify_compatibility( config: &Config, ) -> Result<CompatibilityReport>

Verify that a database is compatible with both sync and async APIs

This function checks that:

  • The database can be opened with sync API
  • The database can be opened with async API
  • Both APIs can read the same data
§Examples
use llm_memory_graph::{Config, migration::MigrationHelper};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = Config::new("./data/graph.db");
    MigrationHelper::verify_compatibility(&config).await?;
    println!("Database is compatible!");
    Ok(())
}
Source

pub async fn create_checkpoint(config: &Config) -> Result<MigrationCheckpoint>

Create a migration checkpoint that can be used to rollback if needed

This function creates a snapshot of database statistics that can be compared later to detect any issues during migration.

§Examples
use llm_memory_graph::{Config, migration::MigrationHelper};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = Config::new("./data/graph.db");
    let checkpoint = MigrationHelper::create_checkpoint(&config).await?;
    println!("Checkpoint: {} nodes, {} edges",
        checkpoint.node_count, checkpoint.edge_count);
    Ok(())
}
Source

pub async fn verify_checkpoint( config: &Config, checkpoint: &MigrationCheckpoint, ) -> Result<CheckpointVerification>

Verify that a database hasn’t been corrupted after migration

Compares current state against a checkpoint created before migration.

§Examples
use llm_memory_graph::{Config, migration::MigrationHelper};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = Config::new("./data/graph.db");
    let before = MigrationHelper::create_checkpoint(&config).await?;

    // ... perform migration ...

    let result = MigrationHelper::verify_checkpoint(&config, &before).await?;
    assert!(result.valid, "Migration corrupted data!");
    Ok(())
}
Source

pub async fn run_migration_test(config: &Config) -> Result<MigrationTestReport>

Run a test migration workflow to validate the migration process

This performs a complete migration test:

  1. Creates a checkpoint
  2. Tests sync API access
  3. Tests async API access
  4. Verifies data integrity
§Examples
use llm_memory_graph::{Config, migration::MigrationHelper};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = Config::new("./data/graph.db");
    let report = MigrationHelper::run_migration_test(&config).await?;
    println!("Migration test: {}", if report.success { "PASSED" } else { "FAILED" });
    Ok(())
}

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more