Quick Start¶
In this example we will create and restore a database snapshots.
config init¶
Run the config init
command to create an example configuration at ~/.config/dbsnapper/dbsnapper.yml
Configuration file initialized to default values
The default configuration uses the PostgreSQL engine with Docker. Check the Datbase Engines documentation for other database options and how to configure them.
config check¶
Next, we can check our configuration and required dependencies. This run some checks to verify the configuration file is valid, Docker is installed, and the specified Docker images exist locally.
DBSnapper config check output
Checking DBSnapper Configuration
✅ Config file ( /Users/joescharf/.config/dbsnapper/dbsnapper.yml ) found and loaded
🔵 Postgres Docker Engine (pgdocker)
✅ Docker client connected
✅ docker.images set in config file
✅ docker.images.mysql set in config file
✅ Found Docker image: postgres:latest
🔵 Postgres Local Engine (pglocal)
✅ psql found at /Applications/Postgres.app/Contents/Versions/latest/bin/psql
✅ pg_dump found at /Applications/Postgres.app/Contents/Versions/latest/bin/psql
✅ pg_restore found at /Applications/Postgres.app/Contents/Versions/latest/bin/psql
🔵 Mysql Docker Engine (mydocker)
✅ Docker client connected
✅ docker.images set in config file
✅ docker.images.mysql set in config file
✅ Found Docker image: mysql:8.0-oracle
✅ All supported database engines configured
✅ DBSnapper Cloud connected
✅ Configuration OK
Add target definitions¶
Add one or more databse targets
to configuration file. Here we define an app
target with a src_url
specifying the source database and a dst_url
specifying the destination database
Defining an app target definition
Danger
A database specified on the dst_url
will be DROPPED and RECREATED when the load
command is used
List targets¶
Now that we have a target defined, we can list all targets with:
This command will also check the size and connectivity status for each target defined in the configuration file.
Build a snapshot¶
Now we're ready to create our first snapshot of the app
target which can be done with the build
command:
This will connect to the database using the native dump utility and will create a dump of all data in the database.
When this is finished you can list all snapshots for the app
target with:
List snapshots for a target¶
Once you've successfully built a snapshot, you can list all the sanpshots for a target with the following command (note the singular target
command):
Load a snapshot¶
If a dst_url
is defined in the target definition, you can load a snapshot to the destination using the index on the snapshot list.
Danger
Remember, the database specifid on dst_url
will be DROPPED and a new empty database with the same name will be CREATED prior to loading the data from the snapshot!