new DbUpdater(options) → {DbUpdater}
Данный модуль предназначен для выполнение разнообразных действий (задач) при старте проекта.
Главной особенность задачи в том, что она обязательно должна быть выполнена и только один раз.
Наиболее частое применение - обновление БД из заранее подготовленых файлов.
Например, есть несколько SQL скриптов которые должны быть последовательно выполнены, после чего можно стартовать приложение.
Во время разработки появляются изменения в БД, которые должны быть выполнены на каждом сервере - мы добавляем соответствующие SQL скрипты (задачи) и знаем, что перед стартом приложения БД будет обновлена (если этого еще не сделано). Это особенно актуально при большом количестве серверов. Некоторые могут назвать этот механизм "миграцией", на мой взгляд это не она, а сонхронизация структуры БД.
Пример кода ниже
Примерs JS и SQL файлов заданий. В примерениже они должны лежать в папке tasks в корне проекта
Во время разработки появляются изменения в БД, которые должны быть выполнены на каждом сервере - мы добавляем соответствующие SQL скрипты (задачи) и знаем, что перед стартом приложения БД будет обновлена (если этого еще не сделано). Это особенно актуально при большом количестве серверов. Некоторые могут назвать этот механизм "миграцией", на мой взгляд это не она, а сонхронизация структуры БД.
Пример кода ниже
Примерs JS и SQL файлов заданий. В примерениже они должны лежать в папке tasks в корне проекта
Parameters:
Name | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
object | объект, который умеет читать задачи из хранилища
Properties
|
- Source:
Returns:
- Type
- DbUpdater
Example
var DbUpdater = require('dbupdater');
var dbupdater = DbUpdater({
taskReader: DbUpdater.TaskReaderFile(),
// taskReader: DbUpdater.TaskReaderFile({path: 'tasks'}),
taskSaver: DbUpdater.TaskSaverPostgreSQL({connString: 'postgres://postgres:1@localhost/mydb'}),
// taskSaver: DbUpdater.TaskSaverPostgreSQL({connString: 'postgres://postgres:1@localhost/mydb', dbTable: 'tasks'}),
taskExecutors: [
DbUpdater.TaskExecPostgresFileJs({connString: 'postgres://postgres:1@localhost/mydb'}),
DbUpdater.TaskExecPostgresFileSql({connString: 'postgres://postgres:1@localhost/mydb'})
]
});
dbupdater.init(function (err) {
if (err) {
console.error('dbupdater: ' + err);
} else {
console.log('dbupdater done success!');
}
});
Members
(static) TaskExecAbstract
- Source:
(static) TaskExecPostgresFileJs
- Source:
(static) TaskExecPostgresFileSql
- Source:
(static) TaskReaderAbstract
- Source:
(static) TaskReaderFile
- Source:
(static) TaskSaverAbstract
- Source:
(static) TaskSaverPostgreSQL
- Source:
Methods
init(cb)
Метод инициализирующий модуль. Выполняет всю подготовительную работу, сравнивает выполненные задачи с задачами в хранилище по md5 и выполняет задачи которые еще небыли выполнены
Parameters:
Name | Type | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
cb |
function | колбэк инициализации
Properties
|
- Source: