Миграция
Во время разработки и обновления плагинов NocoBase структура или конфигурация базы данных плагина может претерпевать несовместимые изменения. Чтобы обеспечить плавное обновление, NocoBase предоставляет механизм миграций, который обрабатывает такие изменения с помощью файлов миграции. Это руководство поможет системно понять процесс использования и разработки миграций.
Концепция миграции
Миграция — это скрипт, который автоматически запускается во время обновлений плагина и используется для решения следующих проблем:
- Корректировка структуры таблицы данных (добавление полей, изменение типов полей и т. д.)
- Миграция данных (например, пакетное обновление значений полей)
- Обновление конфигурации плагина или внутренней логики
Сроки выполнения миграции делятся на три типа:
Создание файлов миграции
Файлы миграции должны быть помещены в src/server/migrations/*.ts в каталоге плагина. NocoBase предоставляет команду create-migration для быстрого создания файлов миграции.
Необязательные параметры
Пример
Путь к сгенерированному файлу миграции:
Начальное содержимое файла:
⚠️
appVersionиспользуется для идентификации версии, на которую предназначено обновление. Среды с версиями меньше указанной будут выполнять эту миграцию.
Написание миграции
В файлах миграции через this доступны общие свойства и API для удобной работы с базой данных, плагинами и экземпляром приложения:
Общие свойства
-
this.appТекущий экземпляр приложения NocoBase. Используется для доступа к глобальным сервисам, плагинам и конфигурации. -
this.dbЭкземпляр сервиса базы данных предоставляет интерфейсы для работы с моделями (коллекциями). -
this.pluginТекущий экземпляр плагина можно использовать для доступа к пользовательским методам плагина. -
this.sequelizeЭкземпляр Sequelize позволяет напрямую выполнять SQL-запросы и транзакции. -
this.queryInterfaceQueryInterfaceSequelize обычно используется для изменения структуры таблиц, например для добавления полей или удаления таблиц.
Пример миграции

