Внешняя база данных

Введение

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

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

Внешняя база данных поддерживает следующие версии баз данных и коммерческие версии:

База данныхПоддерживаемая версияCommunityStandardProfessionalEnterprise
MySQL>= 5.7
PostgreSQL>= 9.5
MariaDB>= 10.3
MSSQL2014-2019
KingbaseES>=V9
OceanBase>=4.3
Oracle>= 11g
ClickHouseВ соответствии с описанием соответствующего плагина
DorisВ соответствии с описанием соответствующего плагина
Подсказка

KingbaseES поддерживает только режим совместимости с PostgreSQL, а OceanBase, ClickHouse и Doris — только режим совместимости с MySQL.

Сценарии использования внешней базы данных:

  • Подключение базы данных существующей бизнес-системы (например, устаревших ERP, MES или WMS) и использование возможностей NocoBase для быстрого создания интерфейса управления, настройки прав доступа, рабочих процессов и отчётов без изменения структуры таблиц исходной базы данных.
  • Дополнение существующей системы возможностями лёгких приложений, например согласованиями, исправлением данных, обработкой исключений и операционными дашбордами, без необходимости заменять исходную систему.
  • Выполнение запросов только для чтения, статистического анализа или BI-визуализации существующей базы данных для снижения зависимости от страниц исходной бизнес-системы.
  • Поэтапная миграция устаревшей системы: сначала подключение старой базы данных в NocoBase для продолжения работы, а затем постепенное размещение новых бизнес-данных в основной базе данных.
  • Структура базы данных по-прежнему поддерживается DBA, скриптами миграции или исходной бизнес-системой, а NocoBase отвечает только за чтение структуры, настройку интерфейса и использование данных.
Внимание

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

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

Внешние базы данных предоставляются соответствующими плагинами источников данных. После установки и активации плагина соответствующий тип базы данных можно выбрать в меню «Add new» раздела «Управление источниками данных».

База данныхСоответствующий плагинСпособ установки
MySQL@nocobase/plugin-data-source-external-mysqlТребуется коммерческая лицензия; используйте после установки и активации плагина.
PostgreSQL@nocobase/plugin-data-source-external-postgresТребуется коммерческая лицензия; используйте после установки и активации плагина.
MariaDB@nocobase/plugin-data-source-external-mariadbТребуется коммерческая лицензия; используйте после установки и активации плагина.
KingbaseES@nocobase/plugin-data-source-kingbaseТребуется коммерческая лицензия; используйте после установки и активации плагина.
OceanBase@nocobase/plugin-data-source-oceanbaseТребуется коммерческая лицензия; используйте после установки и активации плагина.
MSSQL@nocobase/plugin-data-source-external-mssqlТребуется коммерческая лицензия; используйте после установки и активации плагина.
Oracle@nocobase/plugin-data-source-external-oracleТребуется коммерческая лицензия; используйте после установки и активации плагина.
ClickHouse@nocobase/plugin-data-source-external-clickhouseТребуется коммерческая лицензия; используйте после установки и активации плагина.
Doris@nocobase/plugin-data-source-external-dorisТребуется коммерческая лицензия; используйте после установки и активации плагина.

add_new_database

Если в меню «Add new» нет нужного типа базы данных, обычно необходимо проверить:

  • Установлен ли соответствующий плагин
  • Активирован ли плагин
  • Включает ли текущая коммерческая лицензия этот плагин
  • Есть ли у текущего пользователя права на управление источниками данных

Инструкция по использованию

Добавление внешней базы данных

После активации плагина его можно выбрать и добавить в выпадающем меню Add new раздела управления источниками данных.

20240507204316

Введите сведения о базе данных, которую необходимо подключить

20240507204820

Синхронизация таблиц данных

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

20240507204725

Настройка полей

Внешняя база данных автоматически считывает поля существующих таблиц данных и отображает их. Можно быстро просмотреть и настроить заголовок, тип данных (Field type) и тип интерфейса (Field interface), а также нажать кнопку «Редактировать» для изменения дополнительных параметров.

20240507210537

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

20240507220140

Подробнее см. в разделе Поля таблицы данных / Обзор.

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

NocoBase автоматически сопоставляет типы полей внешней базы данных с соответствующими типами данных (Field type) и типами интерфейса (Field Interface).

  • Тип данных (Field type): определяет вид, формат и структуру данных, которые могут храниться в поле;
  • Тип интерфейса (Field interface): тип элемента управления, используемого для отображения и ввода значения поля в пользовательском интерфейсе.
PostgreSQLMySQL/MariaDBNocoBase Data TypeNocoBase Interface Type
BOOLEANBOOLEAN
TINYINT(1)
booleancheckbox
switch
SMALLINT
INTEGER
SERIAL
SMALLSERIAL
TINYINT
SMALLINT
MEDIUMINT
INTEGER
integer
boolean
sort
integer
sort
checkbox
switch
select
radioGroup
BIGINT
BIGSERIAL
BIGINTbigInt
sort
integer
sort
checkbox
switch
select
radioGroup
unixTimestamp
createdAt
updatedAt
REALFLOATfloatnumber
percent
DOUBLE PRECISIONDOUBLE PRECISIONdoublenumber
percent
DECIMAL
NUMERIC
DECIMALdecimalnumber
percent
currency
VARCHAR
CHAR
VARCHAR
CHAR
string
password
uuid
nanoid
input
email
phone
password
color
icon
select
radioGroup
uuid
nanoid
TEXTTEXT
TINYTEXT
MEDIUMTEXT
LONGTEXT
text
json
textarea
markdown
vditor
richText
url
json
UUID-uuiduuid
JSON
JSONB
JSONjsonjson
TIMESTAMPDATETIME
TIMESTAMP
datedate
time
createdAt
updatedAt
DATEDATEdateOnlydatetime
TIMETIMEtimetime
-YEARdatetime
CIRCELcirclejson
circle
PATH
GEOMETRY(LINESTRING)
LINESTRINGlineStringJson
lineString
POINT
GEOMETRY(POINT)
POINTpointjson
point
POLYGON
GEOMETRY(POLYGON)
POLYGONpolygonjson
polygon
GEOMETRYGEOMETRY--
BLOBBLOBblob-
ARRAY-arraymultipleSelect
checkboxGroup
BITBIT--
SETSETsetmultipleSelect
checkboxGroup
RANGE---

Неподдерживаемые типы полей

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

20240507221854

Уникальный идентификатор записи

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

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

edit_collection

edit_collection_configure