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.