dbupdater

0.2.7 • Public • Published

# dbupdater

Данный модуль предназначен для выполнение разнообразных действий (задач) при старте проекта. Главной особенность задачи в том, что она обязательно должна быть выполнена и только один раз. Наиболее частое применение - обновление БД из заранее подготовленых файлов. Например, есть несколько SQL скриптов которые должны быть последовательно выполнены, после чего можно стартовать приложение.
Во время разработки появляются изменения в БД, которые должны быть выполнены на каждом сервере - мы добавляем соответствующие SQL скрипты (задачи) и знаем, что перед стартом приложения БД будет обновлена (если этого еще не сделано). Это особенно актуально при большом количестве серверов. Некоторые могут назвать этот механизм "миграцией", на мой взгляд это не она, а сонхронизация структуры БД.

Инсталяция

Using npm:

$ npm install --save dbupdater

In Node.js/io.js:

var dbupdater = require('dbupdater');
var dbConnStr = 'postgres://user:pass@localhost/dbName';
 
var dbupdater = dbupdater({
     taskReader: dbupdater.TaskReaderFile(/*{path: 'tasks', logDev, log, logWarn, logErr}*/),
     taskSaver: dbupdater.TaskSaverPostgreSQL({connString: dbConnStr/*, dbTable: 'tasks', logDev, log, logWarn, logErr*/}),
     taskExecutors: [
         dbupdater.TaskExecPostgresFileJs({connString: dbConnStr/*, logDev, log, logWarn, logErr*/}),
         dbupdater.TaskExecPostgresFileSql({connString: dbConnStr/*, logDev, log, logWarn, logErr*/})
     ]
});
 
dbupdater.init(function (err) {
     if (err) {
         console.error('dbupdater: ' + err);
     } else {
         console.log('dbupdater done success!');
     }
});

JS задача

// Имя файла tasks/20150506-0053-grigorchuk.postgres-file-js.js
var _ = require('lodash');
module.exports = function (client, cb) {
var sql = 'CREATE TABLE "myyy" (' +
     '   name character varying(256) NOT NULL, ' +
     '   md5 character varying(128) NOT NULL, ' +
     '   executed timestamp without time zone NOT NULL DEFAULT now()' +
     ');';
     client.query(sql, cb);
};

SQL задача

-- Имя файла tasks/20150520-2359-grigorchuk.postgres-file-sql.sql 
ALTER TABLE myyy ADD COLUMN id serial NOT NULL;
ALTER TABLE myyy ADD PRIMARY KEY (id);

Полная документация лежит тут

Package Sidebar

Install

npm i dbupdater

Weekly Downloads

1

Version

0.2.7

License

MIT

Last publish

Collaborators

  • predok-mif