Менеджмент СУБД через wmdb
wmdb
- компонент Webim Server, предназначением которого является менеджмент БД/схем (здесь и далее будет использовано только понятие БД, подразумевая под собой и альтернативу в виде схем в случае использования PostgreSQL в качестве табличной СУБД). Также wmdb
позволяет выполнять операции взаимодействия с БД без запуска основного кода. Это даёт пространство для манёвров, а также позволяет реализовать некоторые use-кейсы, например, инициализация БД на hosted-размещениях
В wmdb
имеется CLI-интерфейс, позволяющий производить простейшие действия с СУБД. Доступ к CLI осуществляется из виртуального окружения через запуск Python-модуля (python3 -m wmdb
). Запуск из-под sudo
не требуется.
Ниже дан синтаксис wmdb
:
wmdb [object [ACCOUNT_NAME] command [args]] [--help]
wmdb --version
В wmdb
существует 4 объекта взаимодействия:
- Схема
meta
в реляционной СУБД -meta
- Схема
pro
в реляционной СУБД -pro
- Схема
stats
в колоночной СУБД -stats
- Аккаунт Webim (таблица
account
в схемеpro
) -account
В wmdb
существует два специальных флага:
-
--version
- возвращает номер версииwmdb
. -
--help
- возвращает подсказки по командам. Применимо ко всем командам.
N.B.
Для выполнения команд в конфигурации СУБД Webim Server должны быть указаны учётные записи СУБД, обладающие всеми привилегиями.
Команды CLI
wmdb meta
Данный набор команд отвечает за работу со схемой webim_meta
.
Доступные команды:
-
wmdb meta create
- создание схемыmeta
с необходимыми данными. До выполнения команды схемыmeta
существовать не должно. -
wmdb meta exists
- проверка существования схемыmeta
. Выполнение команды завершается со статус-кодом0
, если схемаmeta
уже существует, в противном случае выполнение завершается со статус-кодом1
.
Возможные ошибки:
wmdb meta create: Meta schema already exists!
- схемаmeta
уже существует.
wmdb pro
Данный набор команд отвечает за работу со схемой pro
.
Доступные команды:
-
wmdb pro ACCOUNT_NAME create
- создание схемыpro
для аккаунтаACCOUNT_NAME
с необходимыми данными. Настройки соединения и конфигурация схемы должны быть заданы вdb.json
. До выполнения команды схемыpro
для аккаунта существовать не должно. -
wmdb pro ACCOUNT_NAME exists
- проверка существования схемыpro
для аккаунтаACCOUNT_NAME
. Выполнение команды завершается со статус-кодом0
, если схемаpro
для указанного аккаунта уже существует, в противном случае выполнение завершается со статус-кодом1
. -
wmdb pro ACCOUNT_NAME current
- отображение текущей версии схемыpro
аккаунтаACCOUNT_NAME
. -
wmdb pro ACCOUNT_NAME upgrade REVISION
- обновление схемыpro
аккаунтаACCOUNT_NAME
до версииREVISION
. По умолчанию значениемREVISION
являетсяhead
, т.е. при запуске команды будет произведено обновление схемы до последней версии. -
wmdb pro ACCOUNT_NAME downgrade REVISION
- даунгрейд схемыpro
аккаунтаACCOUNT_NAME
до версииREVISION
.
Возможные ошибки:
wmdb pro ACCOUNT_NAME create: Pro schema already exists!
- схемаpro
для аккаунтаACCOUNT_NAME
уже существует.
N.B.
При выполнении миграции к низшей версии схемы pro
мы рекомендуем Вам сначала произвести миграцию к низшей версии схемы stats
.
wmdb stats
Данный набор команд отвечает за работу с аналитической СУБД.
Доступные команды:
-
wmdb stats ACCOUNT_NAME current
- отображение текущей версии аналитической схемы аккаунтаACCOUNT_NAME
. -
wmdb stats ACCOUNT_NAME upgrade REVISION
- обновление аналитической схемы аккаунтаACCOUNT_NAME
до версииREVISION
. По умолчанию значениемREVISION
являетсяhead
, т.е. при запуске команды будет произведено обновление схемы до последней версии. -
wmdb stats ACCOUNT_NAME downgrade REVISION
- даунгрейд аналитической схемы аккаунтаACCOUNT_NAME
до версииREVISION
.
Возможные ошибки:
stats ACCOUNT_NAME [upgrade | downgrade] REVISION: Failed to load categories
- Произошла ошибка при загрузке категорий.
N.B.
При выполнении миграции к высшей версии схемы stats
мы рекомендуем Вам сначала произвести миграцию к высшей версии схемы pro
.
wmdb account
Данный набор команд отвечает за работу с аккаунтами Webim.
Доступные команды:
-
wmdb account ACCOUNT_NAME create
- создание нового аккаунта WebimACCOUNT_NAME
и инициализация его хранилища. Связанные с аккаунтом записи будут добавлены в схемуmeta
, связанные с оператором - в схемуpro
. До выполнения команды аккаунта WebimACCOUNT_NAME
существовать не должно. -
wmdb account ACCOUNT_NAME exists
- проверка существования аккаунтаACCOUNT_NAME
. Выполнение команды завершается со статус-кодом0
, если аккаунт с указанным именем существует, в противном случае выполнение завершается со статус-кодом1
.
Для wmdb account ACCOUNT_NAME create
существует следующий список принимаемых аргументов:
Параметр | Пример | Описание | Обязательный параметр |
---|---|---|---|
--agent-email |
somemail@mail.com |
Адрес электронной почты оператора. | Да |
--agent-name |
Agent |
Имя оператора. | Да |
--agent-password-hash |
a6c79a27049109e472b246b5dfbe08aedff1e9e2259597e54032dbad4958d4ad |
Хэш пароля аккаунта оператора. | Да |
--partner-name |
webim |
Имя партнёра. По умолчанию webim . |
Нет. В случае отсутствия параметра используется значение по умолчанию. |
--phone |
79001234567 |
Номер телефона организации. | Да |
--site |
somesite.com |
Сайт организации. | Да |
--timezone |
Europe/Moscow |
Часовой пояс аккаунта. | Да |
--language |
ru |
Ключ языка аккаунта | Да |
--trial-period-days |
7 |
Длительность демо-периода аккаунта в днях. Значение не менее 1 , по умолчанию 7 . |
Нет |
Пример создания аккаунта testcom
с использованием wmdb
:
python3 -m wmdb account testcom create --agent_email=somemail@mail.com --agent-name=Agent \
--agent-password-hash=a6c79a27049109e472b246b5dfbe08aedff1e9e2259597e54032dbad4958d4ad \
--partner-name=webim --phone=79001234567 --site=somesite.com --timezone=Europe/Moscow \
--language=ru --trial-period-days=7
Возможные ошибки:
wmdb ACCOUNT_NAME create: Account already exists!
- указанный аккаунт уже существует.