PostgreSQL

Data source: External PostgreSQLStandard Edition+

Introdução

O PostgreSQL pode ser integrado ao NocoBase como banco de dados externo. Após a integração, o NocoBase lerá as tabelas, os campos e as views 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ócios original, pelo cliente de 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:

  • Integrar bancos de dados PostgreSQL de sistemas de negócios existentes, como ERP, MES, WMS e CRM
  • Criar uma interface 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, restauração, migração ou alteração da estrutura das tabelas.

Instalação do plugin

Este plugin é comercial. Para obter detalhes sobre a ativação, consulte: 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 de conexão comuns:

ConfiguraçãoDescrição
Data source nameNome de identificação da fonte de dados, usado para referenciá-la em blocos de página, permissões, workflows e APIs. Não pode ser alterado após a criação.
Data source display nameNome da fonte de dados exibido na interface. Recomenda-se usar um nome que seja fácil de entender para os usuários de negócio, como «ERP PostgreSQL» ou «Banco de relatórios».
Host / PortEndereço e porta do host 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 permissão de acesso; ele não concederá acesso nem lerá objetos privados de outras contas.
SchemaSchema do PostgreSQL a ser lido, por exemplo, public. Se o banco de dados tiver vários schemas, 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 views que correspondam a esse prefixo e gerará no NocoBase nomes de tabelas sem o prefixo.
Collections / Add all collectionsControla o escopo da integração. Quando «Add all collections» está ativado, o NocoBase integra todas as tabelas e views do escopo atual; quando desativado, integra 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 será mantida, mas os blocos de página, as permissões, os workflows e as APIs não poderão mais ler 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, primeiro restrinja o escopo usando Schema, Table prefix e «Collections». Integre apenas as tabelas e views utilizadas pelo aplicativo atual para simplificar a configuração posterior de permissões, a criação de páginas e a manutenção da sincronização.

Selecionar tabelas de dados

Depois de preencher as informações de conexão, você pode clicar em «Load Collections» para carregar as tabelas e views disponíveis no PostgreSQL. Os resultados 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á ativado, indicando que todas as tabelas e views do escopo atual serão integradas. Se quiser integrar apenas alguns objetos, desative «Add all collections» e selecione na lista as tabelas ou views necessárias.

20260709204309

Atenção

Uma única fonte de dados externa pode integrar no máximo 500 tabelas ou views por vez. Se houver muitos objetos no PostgreSQL, recomenda-se primeiro restringir 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, você poderá executar «Sync from database» na fonte de dados para reler 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 únicas e mapeamentos de tipos de campos, mas não excluirá as tabelas ou os dados reais do PostgreSQL.

Após a sincronização dos campos, você poderá configurar no NocoBase o título do campo, o tipo de campo (Field type) e o componente do campo (Field interface). Se precisar criar campos de relacionamento do NocoBase, os metadados do relacionamento também serão salvos no NocoBase, sem adicionar automaticamente campos de chave estrangeira reais às tabelas do PostgreSQL.

Mapeamento de tipos de campos

O NocoBase mapeará automaticamente os tipos de campos do PostgreSQL para um Field type e um Field interface adequados. Você pode ajustar a forma de exibição na configuração do campo.

Mapeamentos comuns:

Tipo de campo 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 no NocoBase como campos comuns, será necessário desenvolver uma adaptação.

Chave primária e identificador exclusivo do registro

Para tabelas de dados usadas na exibição e edição em blocos de página, recomenda-se que exista uma chave primária ou um campo exclusivo. O NocoBase usará preferencialmente a chave primária como identificador exclusivo do registro.

Se a integração for de uma view, de uma tabela sem chave primária ou de 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