kmp_embedded/
migration.rs1use std::path::Path;
10
11use kmp_adapter_embedded::{EmbeddedKernelStore, StorageEngine, StoreMigrationReceipt};
12use kmp_domain::PortError;
13
14pub async fn migrate_data_dir(
19 source_dir: &Path,
20 destination_dir: &Path,
21) -> Result<StoreMigrationReceipt, PortError> {
22 migrate_data_dir_to(source_dir, destination_dir, StorageEngine::Sqlite).await
23}
24
25pub async fn migrate_data_dir_to(
29 source_dir: &Path,
30 destination_dir: &Path,
31 destination_engine: StorageEngine,
32) -> Result<StoreMigrationReceipt, PortError> {
33 let (_store, receipt) = EmbeddedKernelStore::migrate_data_dir_to(
34 source_dir,
35 destination_dir,
36 destination_engine,
37 kmp_application::projection_mutations_for_context_event,
38 )
39 .await?;
40 Ok(receipt)
41}
42
43pub async fn open_or_migrate_data_dir(
47 source_dir: &Path,
48 destination_dir: &Path,
49) -> Result<Option<StoreMigrationReceipt>, PortError> {
50 let (_store, receipt) = EmbeddedKernelStore::open_or_migrate_data_dir(
51 source_dir,
52 destination_dir,
53 kmp_application::projection_mutations_for_context_event,
54 )
55 .await?;
56 Ok(receipt)
57}