db-up

This component allow to migrate a database (schema / data) from a version to the most recent version


Keywords
database, updater, update, upgrade
License
MIT
Install
npm install db-up@0.1.1

Documentation

Build Status dependencies Status devDependencies Status

db-up

This component allow to migrate a database (schema / data) from a version to the most recent version. Using javascript files in a folder, will find those files and execute them in sequencial order.

Usage

var updater = require('db-up');

updater
    .update({  path: './patches', version: 10 })
    .then(function () {
        console.log('update completed.');
    });

Installation

npm install db-up

Put update files in a ./patches folder. Each file should be identified with a number followed by the .js extension.

Example structure

project
    |- patches
        |- 1.js
        |- 2.js
        |- 3.js

update

Updater function takes an options object with the following parameters.

Returns

A promise that is resolved when all patches as been applied. If a patch fail, all subsequent patches are not run and the updater invoke the catch branch of the promise.

Options

  • data:

Optionnal data that can be passed to the patches. Usefull for passing a dbContext or connection string.

  • path:

The path to the folder containing the patches. Default is ./patches

  • version:

The current version of the database. The updater will run the script where the name is greater than this number.

  • onApplyingPatch:

A function called before applying a patch.

  • onAppliedPatch:

A function called after a patch has been applied. If the patch cannot be applied, the event won't be called.

Example of a patch file.

Name the file as 1.js and put it in the ./patches folder.

var Promise = require('bluebird');

module.exports = function () {
    return new Promise(function (resolve) {
        // do something to update
        // resolve the promise once it's done.
        resolve();
    });
}

You can omit the promise as well if you are not required to.

module.exports = function () {
    // do something to update
}

Development and test

Clone the project

#Clone the project
https://github.com/xploratics/db-up.git

#Move into the cloned repo
cd db-up

#Install all dependencies
npm install

#Run the tests
npm test

License

MIT License