Bases de dades als formularis

Com el dbConfig d’un camp nomena una base de dades

  1. Nomenar una base de dades
  2. Formularis escrits abans de la 7.5.0
  3. Les formes del dbConfig
  4. Quins formularis consulten una base de dades

Nomenar una base de dades

Un camp amb una query l’executa a la base de dades que nomena el seu dbConfig.

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

Des de la 7.5.0 el nom es busca en aquest ordre:

Ordre El nom és La consulta es connecta amb
1 Una base de dades de Connexions > Bases de dades La credencial que nomena aquesta base de dades
2 Si no, una credencial de tipus Base de dades de Connexions > Credencials Aquesta credencial, com abans de la 7.5.0

El tipus de base de dades (MySQL, MSSQL, PostgreSQL, Oracle o MongoDB) ve de la credencial, així que el formulari no el dona mai. Una credencial sense tipus es llegeix com a MySQL.


Formularis escrits abans de la 7.5.0

Tots els formularis que nomenaven una credencial al dbConfig continuen funcionant, sense cap canvi.

L’actualització a la 7.5.0 crea una base de dades per a cada credencial de base de dades, amb el mateix nom i connectada amb aquesta credencial, de manera que el nom que dona un formulari ara troba primer la base de dades, que porta al mateix accés. Una credencial de tipus base de dades sense cap base de dades amb el seu nom encara es troba al pas 2.

Una base de dades i una credencial poden compartir un nom, com fa l’actualització. Guanya la base de dades: apunta-la a una altra credencial i tots els formularis que donen aquest nom la segueixen, que és com un formulari passa a un altre servidor sense editar-lo.


Les formes del dbConfig

Les tres formes que dbConfig sempre ha acceptat continuen funcionant, i cada nom es busca com s’ha descrit més amunt.

dbConfig Exemple Què fa
Un nom dbConfig: cmdb Consulta aquesta base de dades
Una llista de noms dbConfig: [cmdb-eu, cmdb-us] Executa la consulta a cadascuna i n’uneix els resultats; els duplicats no s’eliminen
Un objecte (antic) dbConfig: { name: cmdb, type: mysql } Consulta la base de dades o la credencial name; obsolet, fes servir només el nom

Una referència a un magatzem de secrets, com ara dbConfig: secret:vault:secret/cmdb/db, no és cap nom de base de dades ni de credencial, i encara es llegeix del magatzem com abans.


Quins formularis consulten una base de dades

L’aplicació llegeix els formularis per saber quins consulten cada base de dades.

La columna Usat per de la pàgina de bases de dades els compta, i la pestanya Usat per de la pàgina d’una base de dades els llista amb els seus camps. Un camp que nomena la credencial de la base de dades també compta. Reanomena una base de dades només després de canviar els formularis que en donen el nom antic.