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

Обзор

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

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

Поддерживаемые версии баз данных и коммерческие редакции внешних баз данных:

База данныхПоддерживаемая версияCommunity EditionStandard EditionProfessional EditionEnterprise Edition
MySQL>= 5.7
PostgreSQL>= 9.5
MariaDB>= 10.3
MSSQL2014-2019
KingbaseES>=V9
OceanBase>=4.3
Oracle>= 11g
ClickHouse>= 20.2
Doris>= 2.1.0
Подсказка

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» нет нужного типа базы данных, обычно необходимо проверить:

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

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

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

После активации плагина его можно выбрать и добавить в раскрывающемся меню 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» в настройках таблицы данных. Если доступный уникальный идентификатор отсутствует, блок страницы может не создать блок, не отображать или не редактировать записи корректно. Подробнее см. в разделе Основная база данных / Редактирование таблицы данных.

редактирование коллекции

настройка коллекции