Christian Decker
ef31a4ac85
backup: Refuse to create a new FileBakend if the backing file exists
2020-04-12 19:35:21 +02:00
Christian Decker
ce49404eb4
backup: Add PRAGMA foreign_keys=on when restoring so cascades work
...
We heavily rely on foreign key constraints to keep the DB consistent and drop
dependent objects such as UTXO set entries when we roll back a block. We also
need to enable the foreign key constraints when restoring otherwise these
dependents are not removed and we run into constraint violations.
2020-04-12 19:35:21 +02:00
Christian Decker
3a399fd55c
backup: Temporarily use a wrapper of the node_factory
...
The node_factory from pyln-client clears the node directory when provisioning
a new node, which interferes with the backup-cli creation of the initial
snapshot. This just disables the cleaning until we can release the next
pyln-client version
2020-04-12 19:35:21 +02:00
Christian Decker
0ed717b3d1
backup: Add restore functionality to the backup-cli utility
2020-04-12 19:35:21 +02:00
Christian Decker
a68758b1d0
backup: Implement the restore method for all backends
...
Also implements the `stream_changes` function in the FileBackend which is used
by `restore` to get all the changes.
2020-04-12 19:35:21 +02:00
Christian Decker
caa5c0a16b
backup: Add the version to the FileBackend format
2020-04-12 19:35:21 +02:00
Christian Decker
8f2eea2840
backend: Make sure that initialize initializes the metadata
2020-04-12 19:35:21 +02:00
Christian Decker
1e6b55b3cb
backup: If a database exists write an intial snapshot
2020-04-12 19:35:21 +02:00
Christian Decker
a44284d04d
pytest: Test starting without having initialized the backup
2020-04-12 19:35:21 +02:00
Christian Decker
c8502cd09d
backup: Add missing Click dependency for the backup-cli tool
2020-04-12 19:35:21 +02:00
Christian Decker
4c146bf2a4
backend: Use th backup URL in backup-cli and add snapshot type to FileBackend
2020-04-12 19:35:21 +02:00
Christian Decker
c58e675877
backup: Ensure at startup that the backup backend was initialized
2020-04-12 19:35:21 +02:00
Christian Decker
97c702731a
backup: Add a bit more documentation to the abstract backend class
2020-04-12 19:35:21 +02:00
Christian Decker
4e19c32444
backup: Add backup-cli tool and use it to initialize the backups
2020-04-12 19:35:21 +02:00
Christian Decker
c049069cff
backup: Initial version of the backup plugin
2020-04-12 19:35:21 +02:00