Migration tool for Datahike from and to other databases.
Make sure your source and target databases exist. You can run the migration on the commandline using clojure CLI:
clj -M:run-m -s datomic-cloud.edn -t datahike-file.ednUse clj -M:run-m -h for further instructions. See the *-example.edn files for dataomic-cloud, datahike-file or nippy example configurations.
Alternatively open your Clojure project, add io.lambdaforge/wanderung to your dependencies, and start a REPL:
(require '[wanderung.core :as w])
(def datomic-cfg {:wanderung/type :datomic
:name "your-database"
:server-type :ion
:region "eu-west-1"
:system "your-system"
:endpoint "http://entry.your-system.eu-west-1.datomic.net:8182/"
:proxy-port 8182})
(def datahike-cfg {:wanderung/type :datahike
:store {:backend :file
:path "/your-data-path"}
:name "from-datomic"
:schema-flexibility :write
:keep-history? true})
;; if the database doesn't exist, wanderung will create a Datahike database
(w/migrate datomic-cfg datahike-cfg)You can use clj -T:build jar to create a jar file and clj -T:build install to install the library in your local maven repository.
Take a look at build.clj for further commands.
If you have Clojure CLI tools installed you can install wanderung locally and use it as a commandline tool.
Install it with:
clj -Ttools install io.lambdaforge/wanderung '{:git/url "https://github.com/lambdaforge/wanderung" :git/tag "v0.2.67"}' :as wanderungMake sure it is installed with:
clj -Ttools listRun it with:
clj -Twanderung migration :source '"./source-cfg.edn"' :target '"./target-cfg.edn"'or with environment variables either inside :source and :target with your own naming:
MY_SOURCE_CFG=./source-cfg.edn
MY_TARGET_CFG=./target-cfg.edn
clj -Twanderung m :source 'MY_SOURCE_CFG' :target 'MY_TARGET_CFG'or with global environment variables defined by wanderung:
WANDERUNG_SOURCE=./source-cfg.edn WANDERUNG_TARGET=./target-cfg.edn clj -Twanderung migrateShow help with:
clj -Twanderung helpUninstall it with:
clj -Ttools remove :tool wanderungBefore using Wanderung for performing a migration, you may wish to run tests that to check that Wanderung works correctly. In order to do so, you need to perform the following steps:
- Install Datomic dev-local.
- Run the tests by calling
clj -T:build test. Withclj -T:build cleanyou can clean up your local build files.
- @perweij
- @vlaaad
- @jonasseglare
Starting from version 0.2.0 wanderung does not support leiningen as build tool anymore. Please adjust accordingly in your project when using wanderung from the commandline.
Copyright © 2020-2022 lambdaforge UG (haftungsbeschränkt) & Contributors
This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0.
This Source Code may also be made available under the following Secondary Licenses when the conditions for such availability set forth in the Eclipse Public License, v. 2.0 are satisfied: GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version, with the GNU Classpath Exception which is available at https://www.gnu.org/software/classpath/license.html.