Введение#
Обновление БД – это один из инструментов разработчика, с помощью которого можно создать/обновить объекты БД согласно их описанию в проекте (модель, sql-объекты).
Для выполнения обновления БД используется интерфейс разработчика (маршрут /dev).
Описание страницы «Обновление БД»#
На странице инструмента обновления БД расположены текстовые поля фильтров миграций и две вкладки: "Модели и sql-объекты" и "История". В первой вкладке находится таблица, в которой выводятся миграции для моделей и SQL объектов, во второй - таблица с миграциями для исторических таблиц моделей, использующих отслеживание истории изменений.
В таблицах миграций имеются следующие столбцы:
- Наименование - содержит тип миграции;
- Объект - название объекта, для которого необходима миграция;
- Описание - подробное описание выполняемых миграцией действий;
- Скрипт - текст выполняемого миграцией скрипта;
- Сообщение - содержит сообщения об ошибках, которые могли возникнуть при выполнении миграции;
- Статус - статус выполнения миграции.
Модели и SQL объекты#
Ниже представлен пример возможных результатов загрузки миграций:
В этом примере приведены основные типы миграций:
- Создание таблицы - данная миграция создает таблицу по описанию модели;
- Создание колонки - миграция создания новых колонок, которых не было в описании модели на момент создания таблицы;
- Создание внешнего ключа - миграция создаётся для полей моделей в типах которых указаны другие модели, либо для дочерних коллекций моделей;
- Обновление объектов БД - миграции, обновляющие текст объектов БД;
- Создание триггера истории - миграции для системных триггеров, которые создаются для моделей, использующих отслеживание истории изменений;
- Создание триггера обновления таблицы - миграции для системных триггеров заполнения системных полей, отслеживающих последнее изменение записи;
История#
Структура таблицы на вкладке "История" не отличается от таблицы на вкладке "Модели и sql-объекты".
У исторических миграций имеются два основных типа:
- Создание исторической таблицы - миграция для новых моделей или моделей, у которых было включено отслеживание истории состояния записей;
- Создание колонки - создание колонок у существующих таблиц;
Фильтрация#
Фильтрация осуществляется с помощью двух текстовых полей: "Наименование таблицы в модели" и "Наименование sql-объекта". При использовании фильтров фильтроваться будут миграции обеих вкладок. Работа фильтров независима от значений друг друга. При фильтрации можно использовать наименования схем БД. После ввода нужных значений фильтров необходимо повторно нажать на кнопку "Загрузить".
Выполнение миграций#
Для выполнения требуемых миграций сначала их следует выбрать с помощью выделения в таблицах вкладок, затем воспользоваться кнопкой "Выполнить". Начнется выполнение выбранных миграций, по окончании которого системой будут выведены информационные сообщения о завершении процесса обновления и о возникших ошибках, если они были.
На примере выше представлен пример результата выполнения миграций. Выведены сообщения об успешном выполнении миграций и о наличии одной ошибки. В поле "Сообщение" выводится подробное содержание исключения, полученное от сервера БД. После исправления возникших ошибок можно осуществить повторное выполнение неудавшихся миграций из уже использованного списка миграций или после загрузки нового.