Утилита миграции базы данных

Примечание

Все указанные в разделе команды выполняются только на контроллере.

Описание утилиты

openstack tnx db migrate - консольная утилита обновления баз данных модулей TIONIX. При запуске утилита производит проверку и автоматически обновляет базу данных до последней версии.

Аргументы утилиты
Параметр Описание
-h, --help Вывод справки. Необязательный параметр.
-l, --list Вывод перечня всех модулей, поддерживающих миграцию базы данных. Необязательный параметр.
-n, --names MODULE_NAMES Вывод результата по конкретному модулю. Наименование задается параметром MODULE_NAMES. При нескольких наименованиях параметр разделяется пробелом. Необязательный параметр.
--migration MIGRATION_VERSION Версия для миграции базы данных. Номер версии задается параметром MIGRATION_VERSION. Необязательный параметр.
-v, --verbose Флаг для вывода детализированного сообщения об ошибке миграции базы данных. Необязательный параметр.

Примеры использования

Получение списка доступных для миграции модулей

Команда:

openstack tnx db migrate --list

Пример вывода перечня модулей, для которых доступна миграция базы данных:

Available modules:
       tnx_client
       tnx_dashboard
       tnx_monitor
       tnx_node_control
       tnx_scheduler
       tnx_vdi_server

Запуск миграции базы данных для одного модуля

Запуск миграции базы данных для TIONIX.Dashboard:

openstack tnx db migrate --names tnx_dashboard

Пример ответа:

Running db migrate for: tnx_dashboard

================
DB migrate table
================
+---+------------------+--------+------------+
| N | Module name      | Status | Result     |
+---+------------------+--------+------------+
| 1 | TIONIX.Dashboard | OK     | 9 -> 10    |
+---+------------------+--------+------------+

Запуск миграции баз данных для нескольких модулей

Запуск миграции баз данных для TIONIX.Dashboard и TIONIX.NodeControl:

openstack tnx db migrate --names tnx_dashboard tnx_node_control

Пример ответа:

Running db migrate for: tnx_dashboard, tnx_node_control

================
DB migrate table
================
+---+--------------------+--------+------------+
| N | Module name        | Status | Result     |
+---+--------------------+--------+------------+
| 1 | TIONIX.Dashboard   | OK     | No changes |
+---+--------------------+--------+------------+
| 2 | TIONIX.NodeControl | OK     | 25 -> 28   |
+---+--------------------+--------+------------+

Запуск миграции баз данных для всех модулей

Запуск миграции базы данных для всех модулей:

openstack tnx db migrate

Пример ответа:

Running db migrate for: tnx_client, tnx_dashboard, tnx_monitor, tnx_node_control, tnx_scheduler, tnx_vdi_server

================
DB migrate table
================
+---+---------------------+--------+------------+
| N | Module name         | Status | Result     |
+---+---------------------+--------+------------+
| 1 | TIONIX.Client       | OK     | No changes |
+---+---------------------+--------+------------+
| 2 | TIONIX.Dashboard    | OK     | 9 -> 10    |
+---+---------------------+--------+------------+
| 3 | TIONIX.Monitor      | OK     | No changes |
+---+---------------------+--------+------------+
| 4 | TIONIX.NodeControl  | OK     | No changes |
+---+---------------------+--------+------------+
| 5 | TIONIX.Scheduler    | OK     | No changes |
+---+---------------------+--------+------------+
| 6 | TIONIX.VDIserver    | OK     | 9 -> 11    |
+---+---------------------+--------+------------+

Неудачная миграция базы данных

Команда:

openstack tnx db migrate

Пример неудачной миграции базы данных:

Running db migrate for: tnx_client, tnx_dashboard, tnx_monitor, tnx_node_control, tnx_scheduler, tnx_vdi_server

================
DB migrate table
================

+---+---------------------+--------+------------------------------------------------------+
| N | Module name         | Status | Result                                               |
+---+---------------------+--------+------------------------------------------------------+
| 1 | TIONIX.Client       | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 2 | TIONIX.Dashboard    | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 3 | TIONIX.Monitor      | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 4 | TIONIX.NodeControl  | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 5 | TIONIX.Scheduler    | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 6 | TIONIX.VDIserver    | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+

Для вывода детализированного сообщения об ошибке базы данных повторите команду с флагом --verbose:

openstack tnx db migrate --verbose

Пример ответа:

Running db migrate for: tnx_client, tnx_dashboard, tnx_monitor, tnx_node_control, tnx_scheduler, tnx_vdi_server

================
DB migrate table
================

+---+---------------------+--------+------------------------------------------------------+
| N | Module name         | Status | Result                                               |
+---+---------------------+--------+------------------------------------------------------+
| 1 | TIONIX.Client       | FAIL   | Error while getting migrate versions:                |
|   |                     |        | (_mysql_exceptions.OperationalError) (2003, 'Can\'t  |
|   |                     |        | connect to MySQL server on \'controller\'')          |
+---+---------------------+--------+------------------------------------------------------+
| 2 | TIONIX.Dashboard    | FAIL   | Error while getting migrate versions:                |
|   |                     |        | (_mysql_exceptions.OperationalError) (2003, 'Can\'t  |
|   |                     |        | connect to MySQL server on \'controller\'')          |
+---+---------------------+--------+------------------------------------------------------+
| 3 | TIONIX.Monitor      | FAIL   | Error while getting migrate versions:                |
|   |                     |        | (_mysql_exceptions.OperationalError) (2003, 'Can\'t  |
|   |                     |        | connect to MySQL server on \'controller\'')          |
+---+---------------------+--------+------------------------------------------------------+
| 4 | TIONIX.NodeControl  | FAIL   | Error while getting migrate versions: Unable to get  |
|   |                     |        | database engine from engine facade                   |
+---+---------------------+--------+------------------------------------------------------+
| 5 | TIONIX.Scheduler    | FAIL   | Error while getting migrate versions:                |
|   |                     |        | (_mysql_exceptions.OperationalError) (2003, 'Can\'t  |
|   |                     |        | connect to MySQL server on \'controller\'')          |
+---+---------------------+--------+------------------------------------------------------+
| 6 | TIONIX.VDIserver    | FAIL   | Error while getting migrate versions: Unable to get  |
|   |                     |        | database engine from engine facade                   |
+---+---------------------+--------+------------------------------------------------------+

Откат обновления базы данных

Важно

Невозможен сразу для нескольких модулей.

Откат базы данных TIONIX.NodeControl с 27 на 26 версию:

openstack tnx db migrate -n tnx_node_control --migration 26

Пример ответа:

Running db migrate for: tnx_node_control

================
DB migrate table
================
+---+--------------------+--------+------------+
| N | Module name        | Status | Result     |
+---+--------------------+--------+------------+
| 1 | TIONIX.NodeControl | OK     | 27 -> 26   |
+---+--------------------+--------+------------+

Описание таблицы результатов

Наименование поля Описание
N Порядковый номер модуля TIONIX.
Module name Наименование модуля TIONIX.
Status

Статус выполнения миграции. Возможные значения:

  • OK - обновление прошло успешно;
  • FAIL - обновление завершилось с ошибкой.
Result

Результаты выполнения обновления. Возможные значения:

  • No changes - нет изменений, обновление не требуется;
  • 26 -> 27 - выводится в случае применения миграции, где 26 начальная версия, а 27 - конечная;
  • Error - сообщение с указанием проблемы.