Bases de dados nos formulários

Como o dbConfig nomeia uma base de dados, e os formulários antigos

  1. Nomear uma base de dados
  2. Formulários escritos antes da 7.5.0
  3. As formas do dbConfig
  4. Que formulários consultam uma base de dados

Nomear uma base de dados

Um campo com uma query corre-a na base de dados que o seu dbConfig nomeia.

- name: datacenter
  type: enum
  dbConfig: cmdb            # a database of Connections > Databases
  query: select name from cmdb.datacenter

A partir da 7.5.0, o nome é procurado por esta ordem:

Ordem O nome é A consulta liga-se com
1 Uma base de dados de Ligações > Bases de dados A credencial que essa base de dados nomeia
2 Senão, uma credencial do tipo Base de dados de Ligações > Credenciais Essa credencial, como antes da 7.5.0

O tipo de base de dados (MySQL, MSSQL, PostgreSQL, Oracle ou MongoDB) vem da credencial, por isso o formulário nunca o indica. Uma credencial sem tipo é lida como MySQL.


Formulários escritos antes da 7.5.0

Todos os formulários que nomeavam uma credencial no dbConfig continuam a funcionar, sem alterações.

A atualização para a 7.5.0 cria uma base de dados para cada credencial de base de dados, com o mesmo nome e ligando-se com essa credencial, por isso o nome que um formulário indica encontra agora primeiro a base de dados, que leva ao mesmo acesso. Uma credencial do tipo base de dados sem nenhuma base de dados com o seu nome continua a ser encontrada pelo passo 2.

Uma base de dados e uma credencial podem partilhar um nome, como faz a atualização. A base de dados prevalece: aponte-a para outra credencial e todos os formulários que indicam esse nome seguem-na, e é assim que um formulário passa para outro servidor sem ser editado.


As formas do dbConfig

As três formas que o dbConfig sempre aceitou continuam a funcionar, com cada nome procurado como acima.

dbConfig Exemplo O que faz
Um nome dbConfig: cmdb Consulta essa base de dados
Uma lista de nomes dbConfig: [cmdb-eu, cmdb-us] Corre a consulta em cada uma e junta os resultados; os duplicados não são removidos
Um objeto (legado) dbConfig: { name: cmdb, type: mysql } Consulta a base de dados ou a credencial name; obsoleto, use só o nome

Uma referência a um cofre de segredos, como dbConfig: secret:vault:secret/cmdb/db, não é um nome de base de dados nem de credencial, e continua a ser lida do cofre como antes.


Que formulários consultam uma base de dados

A aplicação lê os formulários para saber quais deles consultam cada base de dados.

A coluna Usado por da página de bases de dados conta-os, e o separador Usado por da página de uma base de dados lista-os com os seus campos. Um campo que nomeia antes a credencial da base de dados também conta. Renomeie uma base de dados só depois de alterar os formulários que indicam o seu nome antigo.