Efficiently clone Datomic databases for testing and development.
;; deps.edn
{:deps {dev.kwill/datomic-backup {:mvn/version "1.0.13"}}}
Recommended for most use cases. Performs incremental, resumable restore with automatic catch-up using a sidecar state database to track progress.
current-state-restore and stores state(require
'[datomic.client.api :as d]
'[dev.kwill.datomic-backup :as datomic-backup])
(def source-conn (d/connect client {:db-name "source"}))
(def dest-conn (d/connect client {:db-name "destination"}))
(def state-conn (d/connect client {:db-name "restore-state"}))
(datomic-backup/incremental-restore
{:source-conn source-conn
:dest-conn dest-conn
:state-conn state-conn})
:source-conn - Source database connection (required):dest-conn - Destination database connection (required):state-conn - State database connection for tracking restore progress (required):eid-mapping-batch-size - EID mappings per state transaction (default: 1000)current-state-restore options (max-batch-size, read-parallelism, etc.){:status :initial ; or :incremental
:session-id <uuid>
:last-source-tx <tx-id>
:transactions-replayed <n>} ; for :incremental only
Use for one-time restores or when you don't want a sidecar state database.
Restores the current state (no history) from a source database to a destination connection. This is significantly faster than replaying transactions.
(require
'[datomic.client.api :as d]
'[dev.kwill.datomic-backup :as datomic-backup])
(def source-db (d/db source-conn))
(def dest-conn (d/connect client {:db-name "destination"}))
(datomic-backup/current-state-restore
{:source-db source-db
:dest-conn dest-conn})
:source-db - Source database value (required):dest-conn - Destination connection (required):max-batch-size - Datoms per transaction (default: 500):read-parallelism - Parallel attribute reads (default: 20):read-chunk - Datoms per read chunk (default: 5000):tx-parallelism - Parallelism for transaction worker (default: 4):debug - Enable debug logging (default: false)The library also includes backup-db and backup-db-no-history functions for file-based backups, but these are still experimental.
MIT
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |