MySQL

Data source: External MySQLStandard Edition+

Введение

MySQL можно подключить к NocoBase в качестве внешней базы данных. После подключения NocoBase считывает таблицы, поля и представления из MySQL и использует их как таблицы данных внешнего источника.

В отличие от основной базы данных, фактическая структура таблиц внешнего MySQL по-прежнему поддерживается исходной бизнес-системой, клиентом базы данных или скриптами миграции. NocoBase отвечает за чтение структуры, сохранение метаданных полей, настройку блоков страниц, прав доступа, рабочих процессов и API.

ПараметрОписание
Поддерживаемые версииMySQL >= 5.7.
Коммерческие версииПоддерживаются стандартной, профессиональной и корпоративной версиями.
Соответствующий плагин@nocobase/plugin-data-source-external-mysql.
Совместимый протоколПодключение осуществляется по протоколу MySQL.

Внешний MySQL подходит для следующих сценариев:

  • Подключение базы данных MySQL существующих бизнес-систем ERP, MES, WMS, CRM и других
  • Создание интерфейса управления в NocoBase без переноса исторических данных
  • Настройка прав доступа, обработка процессов, исправление данных или отображение отчётов для существующих таблиц
  • Поддержка структуры базы данных DBA, скриптами миграции или исходной системой
Внимание

Внешний MySQL не является системной базой данных NocoBase. NocoBase не управляет её резервным копированием, восстановлением, миграцией и изменениями структуры таблиц.

Установка плагина

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

Добавление источника данных

В разделе «Управление источниками данных» нажмите «Add new», выберите MySQL и укажите данные для подключения.

20240507204820

Ниже приведены типичные параметры подключения:

ПараметрОписание
Data source nameИдентификатор источника данных, используемый для ссылок на него в блоках страниц, правах доступа, рабочих процессах и API. После создания изменить его нельзя.
Data source display nameНазвание источника данных, отображаемое в интерфейсе. Рекомендуется использовать понятное бизнес-пользователям название, например «ERP MySQL» или «База заказов».
Host / PortАдрес и порт хоста MySQL. Порт по умолчанию обычно — 3306.
DatabaseИмя базы данных MySQL, к которой требуется подключиться.
Username / PasswordИмя пользователя и пароль для подключения к MySQL. NocoBase может считывать только объекты, к которым у этой учётной записи есть доступ, и не предоставляет доступ к закрытым объектам других учётных записей и не считывает их.
Table prefixПрефикс имени таблицы. После настройки NocoBase считывает только таблицы и представления, соответствующие этому префиксу, и создаёт в NocoBase имена таблиц без префикса.
Collections / Add all collectionsУправляет областью подключения. При включении «Add all collections» NocoBase подключает все таблицы и представления в текущей области; при отключении подключаются только объекты, выбранные в разделе «Collections».
Enabled the data sourceОпределяет, включён ли этот источник данных. После отключения конфигурация источника сохраняется, но блоки страниц, права доступа, рабочие процессы и API больше не могут считывать его данные.
Совет

Если в MySQL много объектов, сначала сузьте область с помощью Database, Table prefix и «Collections». Подключайте только таблицы и представления, используемые текущим приложением, чтобы упростить последующую настройку прав доступа, создание страниц и синхронизацию.

Выбор таблиц данных

После заполнения данных для подключения можно нажать «Load Collections», чтобы загрузить доступные таблицы и представления из MySQL. Результаты загрузки зависят от учётной записи подключения, Database, Table prefix и настроек «Collections».

По умолчанию включён параметр «Add all collections», что означает подключение всех таблиц и представлений в текущей области. Если требуется подключить только отдельные объекты, отключите «Add all collections», а затем выберите нужные таблицы или представления в списке.

add_new_database_configure_load_collection

Внимание

Один внешний источник данных может одновременно подключить не более 500 таблиц или представлений. Если в MySQL много объектов, рекомендуется сначала сузить область с помощью Database, Table prefix или «Collections».

Синхронизация и настройка полей

Структура таблиц внешнего MySQL поддерживается на стороне базы данных. NocoBase не создаёт во внешнем MySQL поля, не изменяет типы полей и не удаляет фактические поля.

При изменении структуры таблиц на стороне MySQL можно выполнить «Sync from database» в источнике данных, чтобы повторно считать метаданные таблиц и полей. Синхронизация обновит сохранённые в NocoBase таблицы данных, поля, первичные ключи, уникальные ключи и сведения о сопоставлении типов полей, но не удалит реальные таблицы или данные в MySQL.

После синхронизации полей в NocoBase можно настроить заголовок поля, тип поля (Field type) и интерфейс поля (Field interface). Если требуется создать поле связи NocoBase, метаданные связи также сохраняются в NocoBase; реальные внешние ключи в таблице MySQL автоматически не добавляются.

Сопоставление типов полей

NocoBase автоматически сопоставляет типы полей MySQL с подходящими значениями Field type и Field interface. Способ отображения в интерфейсе можно изменить в настройках поля.

Ниже приведены распространённые варианты сопоставления:

Тип поля MySQLNocoBase Field typeДоступные Field interface
TINYINTSMALLINTMEDIUMINTintegerbooleansortInteger、Sort、Checkbox、Switch、Select、Radio group.
INTINTEGERintegerunixTimestampsortInteger、Sort、Unix timestamp、Select、Radio group.
BIGINTbigIntsnowflakeIdunixTimestampsortInteger、Sort、Unix timestamp、Created at、Updated at.
FLOATDOUBLEfloatNumber、Percent.
DECIMALdecimalNumber、Percent、Currency.
CHARVARCHARstringuuidnanoidencryptionInput、Email、Phone、Password、Color、Icon、Select、Radio group、UUID、Nano ID.
TINYTEXTTEXTMEDIUMTEXTLONGTEXTtextTextarea、Markdown、Vditor、Rich text、URL.
DATEdateOnlyDate.
TIMEtimeTime.
DATETIMEdatetimeNoTzdatetimeTzdateDate、Time、Created at、Updated at.
TIMESTAMPdatetimeTzdateDate、Time、Created at、Updated at.
YEARstringintegerInput、Integer、Date.
JSONjsonarrayJSON.
Внимание

Неподдерживаемые типы полей MySQL будут отображаться отдельно в настройках полей. Для использования таких полей в NocoBase как обычных требуется разработать соответствующую адаптацию.

Первичный ключ и уникальный идентификатор записи

Для таблиц данных, используемых в блоках страниц для отображения и редактирования, рекомендуется наличие первичного или уникального поля. NocoBase в первую очередь использует первичный ключ как уникальный идентификатор записи.

Если подключается представление, таблица без первичного ключа или таблица с составным первичным ключом, необходимо вручную задать «Record unique key» в настройках таблицы данных. При отсутствии доступного уникального идентификатора блоки страниц могут неправильно отображать, редактировать или удалять записи.

20260709205547 20260709205609