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

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