rethinkdb-pull
v2.3.6
Published
Pull remote rethink database and overwrite local
Downloads
20
Readme
RethinkDB Pull
- Prompts for local and remote db/password info if none provided in
options
argument or.env
file - Uses ssh-tunnel to connect to a remote RethinkDB server
- Downloads a compressed file containing a database from the server
- Extracts the file and imports the tables into a local database, overwriting existing data unless
merge
option istrue
Requirements
- rethinkdb: The Python version (
sudo pip install rethinkdb
) - node.js >= 4
Usage
Put the following in a file within your project (e.g. pull.js
):
const rethinkdbPull = require('rethinkdb-pull');
// Using minimum required settings
rethinkdbPull({
tunnel: {
username: 'somebody',
host: 'example.com'
}
})
.then(() => console.log('Hooray, I finished!'));
Add an npm script to package.json
:
{
"scripts": {
"db:pull": "node ./pull.js"
}
}
On the command line:
npm run db:pull
Returns
The rethinkdbPull
function returns a Promise
.
The Promise is resolved with a settings
object, which is the result of merging per-call settings, environment variables, and default settings.
Settings
Available settings, with their defaults:
let settings = {
localDb: undefined, // String
localPwd: undefined, // String
remoteDb: undefined, // String or Array
remotePwd: undefined,
tempDir: '/tmp',
includeTables: [],
excludeTables: [],
force: false, // if true, skips inquirer prompts that would otherwise appear
fetchOnly: false, // [ *see more below ]
fetchToPath: '/tmp/rethink_dump.tar.gz', // if fetchOnly is true, path of the tarball to save
// See https://github.com/agebrock/tunnel-ssh for details on tunnel settings:
tunnel: {
username: undefined,
host: undefined,
port: 22,
dstHost: '127.0.0.1',
dstPort: 28015,
localHost: '127.0.0.1',
localPort: 9999,
keepAlive: true,
}
}
* fetchOnly
may be useful as a backup strategy.
If set to true
, the function call will only dump
the remote db, NOT restore
into a local db. The resulting file will be saved as: [tempDir]/[timestamp]/rethink_dump.tar.gz
.
Database and password settings
- If you don't include values for
localDb
,localPwd
,remoteDb
, orremotePwd
, you will be prompted to do so. - Instead of passing these settings into the function argument, you may use
.env
settings:DB_NAME # localDb LOCAL_DB_ADMIN_PASSWORD # localPwd REMOTE_DB_NAME # remoteDb REMOTE_DB_ADMIN_PASSWORD # remotePwd
- If you pass in
remoteDb
as an array, you will be prompted to choose one of the array elements when the script is run.