1.0.7 • Published 1 year ago

patroni-switcher v1.0.7

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Patroni Switcher - авто переключение pg серверов под управлением арбитра Patroni

Пакет позволяет делать следующее: 1. При запросах SELECT распределять запросы по серверам Master - Slave. 2. В случае попытки записи в таблицу и ответа ошибки "cannot execute UPDATE in a read-only transaction" или любой ошибки с типом "PreventCommandIfReadOnly" - модуль переключит Master коннектор на подходящий Slave, и дальше будет использовать сервер Slave как Master.

Установка (Installation)

$ npm install patroni-switcher

Примеры (Examples)

Замените в коде все инициализации Sequelize на PatroniSwitcher

Было (AS-IS):

let sequelize = new Sequelize(config.database, config.username, config.password, config);

Стало (TO-BE):

let sequelize = new PatroniSwitcher(config.database, config.username, config.password, config);

Добавьте в config данные по серверам Patroni:

Было (AS-IS):

let config = {
    username: "postgres",
    password: "postgres",
    database: "test",
    host: "master-host",
    port: 5432,
    schema: "default",
    dialect: "postgres",
    pool: {max: 25, min: 0, idle: 1000}
  }

Стало (TO-BE):

let config = {
    ...    
    patroni: [ {host: "master-host", port: 5432}, {host: "slave-host", port: 5432}],
  }

ChangeLog 1.0.6

Добавлена поддержка patroni-cli (ТОЛЬКО ДЛЯ MIS-Portal)

Утилита создает схемы если их нет. Для env'а созданы новые параметры DB_BEFORECREATESCHEMA и DB_AFTERCREATESCHEMA Содержат часть запроса до создания схемы и после: Пример:

DB_BEFORECREATESCHEMA = set role 'db_admin'
DB_AFTERCREATESCHEMA  = GRANT ALL ON SCHEMA {{ schema_name}}  TO "as_admin";

Поддерживаемые команды:

  1. $ patroni db:migrate
  2. $ patroni db:migrate:undo:all
  3. $ patroni db:seed:all
  4. $ patroni db:seed:undo:all

Поддерживается одновременно несколько команд:

$ patroni db:migrate db:seed:all

Развернет таблицы + загрузит первоначальные данные

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago