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

Примечание

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

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

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

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

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

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

Команда:

openstack aos db migrate --list

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

Available modules:
       cloud_manager
       clouds
       dashboard
       journal
       monitor
       scheduler
       rs_server

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

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

openstack aos db migrate --names dashboard

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

Running db migrate for: dashboard

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

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

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

openstack aos db migrate --names dashboard cloud_manager

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

Running db migrate for: dashboard, cloud_manager

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

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

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

openstack aos db migrate

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

Running db migrate for: cloud_manager, clouds, dashboard, monitor, rs_server, scheduler

================
DB migrate table
================
+---+---------------------+--------+----------------+
| N | Module name         | Status | Result         |
+---+---------------------+--------+----------------+
| 1 | CloudManager        | OK     | No changes     |
+---+---------------------+--------+----------------+
| 2 | Clouds              | OK     | No changes     |
+---+---------------------+--------+----------------+
| 3 | Dashboard           | OK     | 10 -> 11       |
+---+---------------------+--------+----------------+
| 4 | Journal             | OK     | No changes     |
+---+---------------------+--------+----------------+
| 5 | Monitor             | OK     | No changes     |
+---+---------------------+--------+----------------+
| 6 | RSserver            | OK     | 10 -> 11       |
+---+---------------------+--------+----------------+
| 7 | Scheduler           | OK     | No changes     |
+---+---------------------+--------+----------------+

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

Команда:

openstack aos db migrate

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

Running db migrate for: cloud_manager, clouds, dashboard, monitor, rs_server, scheduler

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

+---+---------------------+--------+------------------------------------------------------+
| N | Module name         | Status | Result                                               |
+---+---------------------+--------+------------------------------------------------------+
| 1 | CloudManager        | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 2 | Clouds              | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 3 | Dashboard           | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 4 | Journal             | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 5 | Monitor             | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 6 | RSserver            | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+
| 7 | Scheduler           | FAIL   | Unknown DB Error. Please contact your administrator. |
+---+---------------------+--------+------------------------------------------------------+

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

openstack aos db migrate --names dashboard cloud_manager --verbose

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

Running db migrate for: cloud_manager, dashboard

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

+---+---------------------+--------+------------------------------------------------------+
| N | Module name         | Status | Result                                               |
+---+---------------------+--------+------------------------------------------------------+
| 1 | CloudManager        | FAIL   | Error while getting migrate versions: Unable to get  |
|   |                     |        | database engine from engine facade                   |
+---+---------------------+--------+------------------------------------------------------+
| 2 | Dashboard           | FAIL   | Error while getting migrate versions:                |
|   |                     |        | (_mysql_exceptions.OperationalError) (2003, 'Can\'t  |
|   |                     |        | connect to MySQL server on \'controller\'')          |
+---+---------------------+--------+------------------------------------------------------+

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

Важно

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

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

openstack aos db migrate -n cloud_manager --migration 26

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

Running db migrate for: cloud_manager

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

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

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

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

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

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

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