PostgreSQL

Источник данных: внешний PostgreSQLStandard Edition+

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20260709204309

Внимание

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

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

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

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

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

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

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

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

Тип поля PostgreSQLNocoBase Field typeДоступный Field interface
BOOLEANbooleanCheckbox, Switch.
SMALLINTINTEGERSERIALSMALLSERIALintegerbooleansortInteger, Sort, Checkbox, Switch, Select, Radio group.
BIGINTBIGSERIALbigIntsortInteger, Sort, Checkbox, Switch, Select, Radio group, Unix timestamp, Created at, Updated at.
REALfloatNumber, Percent.
DOUBLE PRECISIONdoubleNumber, Percent.
DECIMALNUMERICdecimalNumber, Percent, Currency.
VARCHARCHARstringpassworduuidnanoidInput, Email, Phone, Password, Color, Icon, Select, Radio group, UUID, Nano ID.
TEXTtextjsonTextarea, Markdown, Vditor, Rich text, URL, JSON.
UUIDuuidUUID.
JSONJSONBjsonJSON.
TIMESTAMPdateDate, Time, Created at, Updated at.
DATEdateOnlyDate.
TIMEtimeTime.
POINTLINESTRINGPOLYGONCIRCLEpointlineStringpolygoncirclePoint, Line string, Polygon, Circle, JSON.
ARRAYarrayMultiple select, Checkbox group.
Внимание

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

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

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

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

20260709204742 20260709204827

Связанные ссылки