README.md in pg_export-0.2.0 vs README.md in pg_export-0.3.0
- old
+ new
@@ -1,17 +1,28 @@
# PgExport
-CLI for exporting PostgreSQL database dump to FTP.
+CLI for creating and exporting PostgreSQL dumps to FTP.
Can be used for backups or synchronizing databases between production and development environments.
-Configurable by ENV variables and (partially) by command line options.
+Example:
+ pg_export --database database_name -keep 5
+
+Above command will perform database dump, gzip it, upload it to FTP and remove old dumps from FTP, keeping newest 5.
+
+FTP connection params are configured by env variables.
+
+Features:
+
+- uses shell command pg_dump
+- no external gem dependencies
+- uses ruby tempfiles, so local dumps are garbage collected automatically
+
## Dependencies
* Ruby >= 2.1
- * PostgreSQL >= 9.1
* $ pg_dump
## Installation
Add this line to your application's Gemfile:
@@ -31,16 +42,18 @@
## CLI
$ pg_export -h
Usage: pg_export [options]
- -c, --configuration Prints the configuration
- -f, --ftp Tries connecting to FTP to verify the connection
-d, --database DATABASE [Required] Name of the database to export
- -k, --keep [KEEP] [Optional] Number of dump files to keep locally and on FTP (default: 10)
+ -k, --keep [KEEP] [Optional] Number of dump files to keep on FTP (default: 10)
-t, --timestamped [Optional] Enables log messages with timestamps
-h, --help Show this message
+
+ Setting can be verified by running following commands:
+ -c, --configuration Prints the configuration
+ -f, --ftp Tries connecting to FTP to verify the connection
## How to start
__Step 1.__ Prepare FTP account and put configuration into env variables.
@@ -52,21 +65,17 @@
Password cannot include `#` sign, [more info](http://serverfault.com/questions/539730/environment-variable-in-etc-environment-with-pound-hash-sign-in-the-value).
__Step 2.__ Configure other variables (optional).
# /etc/environment
- DUMPFILE_DIR="/var/dumps" # default: "tmp/dumps"
- KEEP_DUMPS=3 # default: 10
- KEEP_FTP_DUMPS=5 # default: 10
+ KEEP_DUMPS=5 # default: 10
-__Step 3.__ Print the configuration to verify if env variables has been loaded.
+__Step 3.__ Print the configuration to verify whether env variables has been loaded.
$ pg_export --configuration
=> database:
- dumpfile_dir: /var/dumps
- keep_dumps: 3
- keep_ftp_dumps: 5
+ keep_dumps: 5
ftp_host: yourftp.example.com
ftp_user: user
ftp_password: pass***
__Step 4.__ Try connecting to FTP to verify the connection.
@@ -76,13 +85,13 @@
Close FTP
__Step 5.__ Perform database export.
$ pg_export -d your_database
- => Dump your_database to /var/dumps/your_database_20161020_125747 (892.38kB)
- Zip dump your_database_20161020_125747.gz (874.61kB)
+ => Create Dump Tempfile (1.36MB)
+ Create Compressed Dump Tempfile (1.34MB)
Connect to yourftp.example.com
- Export your_database_20161020_125747.gz to FTP
+ Export Compressed Dump Tempfile (1.34MB) your_database_20161020_125747.gz to yourftp.example.com
Close FTP
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.