{"id":20476677,"url":"https://github.com/rabbitmq/khepri_mnesia_migration","last_synced_at":"2025-10-07T15:02:56.011Z","repository":{"id":64267252,"uuid":"573412109","full_name":"rabbitmq/khepri_mnesia_migration","owner":"rabbitmq","description":"Tools to migrate between Mnesia and Khepri","archived":false,"fork":false,"pushed_at":"2025-04-04T16:43:33.000Z","size":442,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-04T17:27:47.640Z","etag":null,"topics":["database","elixir","elixir-library","erlang","erlang-library","migration"],"latest_commit_sha":null,"homepage":"https://rabbitmq.github.io/khepri_mnesia_migration/","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rabbitmq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-Apache-2.0","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-02T12:02:23.000Z","updated_at":"2025-04-04T16:21:22.000Z","dependencies_parsed_at":"2024-12-17T15:32:05.881Z","dependency_job_id":"817a51bf-98ae-40bd-bce1-8bd6a6633cb4","html_url":"https://github.com/rabbitmq/khepri_mnesia_migration","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Fkhepri_mnesia_migration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Fkhepri_mnesia_migration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Fkhepri_mnesia_migration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Fkhepri_mnesia_migration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rabbitmq","download_url":"https://codeload.github.com/rabbitmq/khepri_mnesia_migration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248717241,"owners_count":21150387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","elixir","elixir-library","erlang","erlang-library","migration"],"created_at":"2024-11-15T15:22:13.628Z","updated_at":"2025-10-07T15:02:50.980Z","avatar_url":"https://github.com/rabbitmq.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `khepri_mnesia_migration`: Mnesia⬌Khepri migration toolkit\n\n[![Hex.pm](https://img.shields.io/hexpm/v/khepri_mnesia_migration)](https://hex.pm/packages/khepri_mnesia_migration/)\n[![Test](https://github.com/rabbitmq/khepri_mnesia_migration/actions/workflows/test-and-release.yaml/badge.svg)](https://github.com/rabbitmq/khepri_mnesia_migration/actions/workflows/test-and-release.yaml)\n[![Codecov](https://codecov.io/gh/rabbitmq/khepri_mnesia_migration/branch/main/graph/badge.svg?token=R0OGKZ2RK2)](https://codecov.io/gh/rabbitmq/khepri_mnesia_migration)\n\n`khepri_mnesia_migration` is a library providing helpers to migrate data\nbetween the Mnesia and Khepri databases.\n\nCurrently, only the migration from Mnesia to Khepri is supported.\n\n\u003cimg align=\"right\" height=\"150\" src=\"/doc/kmm-logo.svg\"\u003e\n\n## Project maturity\n\n`khepri_mnesia_migration` is still under active development and should be\nconsidered *Alpha* at this stage.\n\n## Documentation\n\n* A short tutorial in the [Getting started](#getting-started) section below\n* [Documentation and API reference](https://rabbitmq.github.io/khepri_mnesia_migration/)\n\n## Getting started\n\n### Add as a dependency\n\nAdd `khepri_mnesia_migration` as a dependency of your project:\n\nUsing Rebar:\n\n```erlang\n%% In rebar.config\n{deps, [{khepri_mnesia_migration, \"0.8.0\"}]}.\n```\n\nUsing Erlang.mk:\n\n```make\n# In your Makefile\nDEPS += khepri_mnesia_migration\ndep_khepri_mnesia_migration = hex 0.8.0\n```\n\nUsing Mix:\n\n```elixir\n# In mix.exs\ndefp deps do\n  [\n    {:khepri_mnesia_migration, \"0.8.0\"}\n  ]\nend\n```\n\n### Synchronize cluster members\n\nTo ensure a Khepri store has the same members as the Mnesia cluster, use\n`mnesia_to_khepri:synchronize_cluster_membership/{0,1}`:\n\n```erlang\nmnesia_to_khepri:synchronize_cluster_membership(StoreId).\n```\n\n### Copy Mnesia tables to a Khepri store\n\nYou can copy Mnesia tables records to a Khepri store using\n`mnesia_to_khepri:copy_tables/{2,3}`. It takes a converter module which takes\ncare of actually processing each Mnesia records (if needed) and storing them in\nthe Khepri store. A converter module called\n`mnesia_to_khepri_example_converter` is provided for common use cases and as an\nexample.\n\n```erlang\nmnesia_to_khepri:copy_all_tables(mnesia_to_khepri_example_converter).\n```\n\n## How to build\n\n### Build\n\n```\nrebar3 compile\n```\n\n### Build documentation\n\n```\nrebar3 edoc\n```\n\n### Test\n\n```\nrebar3 xref\nrebar3 eunit\nrebar3 ct --sname ct\nrebar3 as test dialyzer\n```\n\n## Copyright and License\n\n© 2022-2025 Broadcom. All Rights Reserved. The term \"Broadcom\" refers to\nBroadcom Inc. and/or its subsidiaries.\n\nThis work is dual-licensed under the Apache License 2.0 and the Mozilla Public\nLicense 2.0. You can choose between one of them if you use this work.\n\nSPDX-License-Identifier: Apache-2.0 OR MPL-2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbitmq%2Fkhepri_mnesia_migration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabbitmq%2Fkhepri_mnesia_migration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbitmq%2Fkhepri_mnesia_migration/lists"}