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. Способ отображения в интерфейсе можно изменить в настройках поля.

Распространённые варианты сопоставления:

Тип поля MySQLField type в NocoBaseДоступные 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