PostgreSQL

Data source: External PostgreSQLStandard Edition+

Introdução

O PostgreSQL pode ser conectado ao NocoBase como banco de dados externo. Após a conexão, o NocoBase lerá as tabelas, os campos e as visualizações do PostgreSQL e os utilizará como tabelas de dados na fonte de dados externa.

Diferentemente do banco de dados principal, a estrutura real das tabelas do PostgreSQL externo continua sendo mantida pelo sistema de negócio original, pelo cliente do banco de dados ou por scripts de migração. O NocoBase é responsável por ler a estrutura, salvar os metadados dos campos e configurar blocos de página, permissões, workflows e APIs.

Item de configuraçãoDescrição
Versões compatíveisPostgreSQL >= 9.5.
Versões comerciaisCompatível com as edições Standard, Professional e Enterprise.
Plugin correspondente@nocobase/plugin-data-source-external-postgres.

Cenários adequados para usar o PostgreSQL externo:

  • Conectar bancos de dados PostgreSQL de sistemas de negócio existentes, como ERP, MES, WMS e CRM
  • Criar interfaces de gerenciamento com o NocoBase sem migrar dados históricos
  • Aplicar controle de permissões, processamento de workflows, correção de dados ou exibição de relatórios em tabelas existentes
  • Continuar mantendo a estrutura do banco de dados por DBAs, scripts de migração ou pelo sistema original
Atenção

O PostgreSQL externo não é o banco de dados do sistema NocoBase. O NocoBase não assumirá o controle do backup, da restauração, da migração nem das alterações na estrutura das tabelas.

Instalação do plugin

Este é um plugin comercial. Para obter detalhes sobre a ativação, consulte o Guia de ativação de plugins comerciais

Adicionar fonte de dados

Em «Gerenciamento de fontes de dados», clique em «Add new», selecione PostgreSQL e preencha as informações de conexão. 20260709204045

Configurações comuns de conexão:

ConfiguraçãoDescrição
Data source nameNome identificador da fonte de dados, usado para referências em blocos de página, permissões, workflows e APIs. Não pode ser alterado após a criação.
Data source display nameNome exibido da fonte de dados na interface. Recomenda-se usar um nome compreensível para os usuários de negócio, como «ERP PostgreSQL» ou «Banco de relatórios».
Host / PortEndereço do host e porta do PostgreSQL. A porta padrão normalmente é 5432.
DatabaseNome do banco de dados PostgreSQL ao qual se conectar.
Username / PasswordNome de usuário e senha usados para conectar-se ao PostgreSQL. O NocoBase só pode ler os objetos aos quais essa conta tem acesso; ele não concederá permissões nem lerá objetos privados de outras contas.
SchemaSchema do PostgreSQL a ser lido, por exemplo public. Se houver vários schemas no banco de dados, recomenda-se preencher apenas o schema necessário para o negócio atual.
Table prefixPrefixo dos nomes das tabelas. Após a configuração, o NocoBase lerá apenas as tabelas e visualizações que correspondam a esse prefixo e gerará no NocoBase nomes de tabelas sem o prefixo.
Collections / Add all collectionsControla o escopo da conexão. Quando «Add all collections» está ativado, o NocoBase conecta todas as tabelas e visualizações do escopo atual; quando desativado, conecta apenas os objetos selecionados em «Collections».
Enabled the data sourceDefine se esta fonte de dados está habilitada. Quando desabilitada, a configuração da fonte de dados é mantida, mas os blocos de página, as permissões, os workflows e as APIs não poderão continuar lendo seus dados.
SSL optionsConfiguração da conexão SSL do PostgreSQL. É possível definir o modo SSL, se certificados não autorizados devem ser rejeitados e os caminhos do certificado da CA, do certificado do cliente e da chave do cliente.
Dica

Se houver muitos objetos no PostgreSQL, restrinja primeiro o escopo usando Schema, Table prefix e «Collections». Conecte apenas as tabelas e visualizações usadas pelo aplicativo atual para simplificar as configurações de permissões, a criação de páginas e a manutenção posterior da sincronização.

Selecionar tabelas de dados

Depois de preencher as informações de conexão, clique em «Load Collections» para carregar as tabelas de dados e visualizações disponíveis no PostgreSQL. Os resultados da leitura serão afetados pela conta de conexão, por Schema, Table prefix e pela configuração de «Collections».

Por padrão, «Add all collections» estará habilitado, indicando que todas as tabelas e visualizações do escopo atual serão conectadas. Se quiser conectar apenas parte dos objetos, desabilite «Add all collections» e selecione na lista as tabelas de dados ou visualizações necessárias.

20260709204309

Atenção

Uma única fonte de dados externa pode conectar no máximo 500 tabelas de dados ou visualizações por vez. Se houver muitos objetos no PostgreSQL, recomenda-se restringir primeiro o escopo usando Schema, Table prefix ou «Collections».

Sincronizar e configurar campos

A estrutura das tabelas do PostgreSQL externo é mantida no lado do banco de dados. O NocoBase não criará campos, alterará tipos de campos nem excluirá campos reais no PostgreSQL externo.

Quando a estrutura das tabelas no PostgreSQL for alterada, execute «Sync from database» na fonte de dados para ler novamente os metadados das tabelas e dos campos. A sincronização atualizará no NocoBase as informações salvas sobre tabelas de dados, campos, chaves primárias, chaves exclusivas e mapeamentos de tipos de campos, mas não excluirá as tabelas reais nem os dados do PostgreSQL.

Após a sincronização dos campos, é possível configurar no NocoBase o título do campo, o tipo de campo (Field type) e o componente do campo (Field interface). Se for necessário criar um campo de relação do NocoBase, os metadados da relação também serão salvos no NocoBase, sem adicionar automaticamente um campo de chave estrangeira real à tabela do PostgreSQL.

Mapeamento de tipos de campos

O NocoBase mapeia automaticamente os tipos de campos do PostgreSQL para o Field type e o Field interface apropriados. É possível ajustar a forma de exibição na configuração do campo.

Mapeamentos comuns:

Tipo de campo do PostgreSQLNocoBase Field typeField interface disponíveis
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.
Atenção

Os tipos de campos do PostgreSQL que não são compatíveis serão exibidos separadamente na configuração dos campos. Para usar esses campos como campos comuns no NocoBase, é necessário desenvolver um adaptador.

Chave primária e identificador exclusivo do registro

Recomenda-se que as tabelas de dados usadas para exibição e edição em blocos de página tenham uma chave primária ou um campo exclusivo. O NocoBase priorizará a chave primária como identificador exclusivo do registro.

Se a conexão for com uma visualização, uma tabela sem chave primária ou uma tabela com chave primária composta, será necessário definir manualmente «Record unique key» na configuração da tabela de dados. Sem um identificador exclusivo disponível, os blocos de página poderão não conseguir visualizar, editar ou excluir os registros corretamente.

20260709204742 20260709204827