Awesome
khepri_mnesia_migration
: Mnesia⬌Khepri migration toolkit
khepri_mnesia_migration
is a library providing helpers to migrate data
between the Mnesia and Khepri databases.
Currently, only the migration from Mnesia to Khepri is supported.
<img align="right" height="150" src="/doc/kmm-logo.svg">Project maturity
khepri_mnesia_migration
is still under active development and should be
considered Alpha at this stage.
Documentation
- A short tutorial in the Getting started section below
- Documentation and API reference
Getting started
Add as a dependency
Add khepri_mnesia_migration
as a dependency of your project:
Using Rebar:
%% In rebar.config
{deps, [{khepri_mnesia_migration, "0.7.1"}]}.
Using Erlang.mk:
# In your Makefile
DEPS += khepri_mnesia_migration
dep_khepri_mnesia_migration = hex 0.7.1
Using Mix:
# In mix.exs
defp deps do
[
{:khepri_mnesia_migration, "0.7.1"}
]
end
Synchronize cluster members
To ensure a Khepri store has the same members as the Mnesia cluster, use
mnesia_to_khepri:synchronize_cluster_membership/{0,1}
:
mnesia_to_khepri:synchronize_cluster_membership(StoreId).
Copy Mnesia tables to a Khepri store
You can copy Mnesia tables records to a Khepri store using
mnesia_to_khepri:copy_tables/{2,3}
. It takes a converter module which takes
care of actually processing each Mnesia records (if needed) and storing them in
the Khepri store. A converter module called
mnesia_to_khepri_example_converter
is provided for common use cases and as an
example.
mnesia_to_khepri:copy_all_tables(mnesia_to_khepri_example_converter).
How to build
Build
rebar3 compile
Build documentation
rebar3 edoc
Test
rebar3 xref
rebar3 eunit
rebar3 ct --sname ct
rebar3 as test dialyzer
Copyright and License
© 2022-2024 Broadcom. All Rights Reserved. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
This work is dual-licensed under the Apache License 2.0 and the Mozilla Public License 2.0. You can choose between one of them if you use this work.
SPDX-License-Identifier: Apache-2.0 OR MPL-2.0