A partire dalla versione 27.0, Invantive UniversalSQL legge le definizioni del database da settings*.json anziché da settings*.xml. I file XML esistenti vengono migrati automaticamente.
Il supporto per il formato XML non sarà più disponibile a partire dalla release 28.0 di Invantive UniversalSQL (la release è prevista per l’inizio del 2028).
Perché
Il formato XML risale al 2009 e presenta due problemi che vengono risolti con un cambio di formato.
- Strumenti: la lettura o la generazione delle impostazioni richiede XPath e/o XSLT. La maggior parte dei linguaggi di programmazione può però analizzare JSON senza librerie aggiuntive. Generare un file di impostazioni per cliente o ambiente diventa così una questione di modelli di testo anziché modelli XML.
- Elementi obsoleti: il formato XML porta con sé molta eredità storica in termini di concetti relativi alle connessioni ai database. Molti elementi non sono più supportati o rilevanti. Il formato JSON utilizza i concetti attuali, quindi ciò che leggi è esattamente ciò che il termine significa.
Formato
Il formato settings*.json è molto simile al formato XML. Le principali modifiche sono:
<connection>è chiamatodatabase(singolare) odatabases(plurale).<database>è chiamatodataContainer(singolare) odataContainers(plurale).
Per esempio:
{ "version": "5"
, "groups":
[ { "name": "ACME"
, "sortingOrder": 100
, "databases":
[ { "name": "acme-eol"
, "shortDescription": "Exact Online"
, "sortingOrder": 10
, "authentication": "Default"
, "dataContainers":
[ { "kind": "dataContainer"
, "provider": "ExactOnlineAll"
, "alias": "eol"
, "order": 10
, "connectionString": "..."
}
]
}
]
}
]
}
I commenti e le virgole finali vengono ignorati quando un file viene letto. I commenti e le virgole finali scompaiono se un prodotto riscrive il file settings*json.
Migrazione
Si è cercato di rendere la migrazione il più semplice possibile.
La prima volta che un prodotto della release 27.0 legge un file settings*.xml per il quale non esiste un file .json con lo stesso nome, crea un file JSON funzionalmente identico accanto a quel file. Il file XML rimane invariato. Le proprietà obsolete vengono ignorate.
I file creati dalla scoperta automatica (settings-discovery*.xml) non vengono mai migrati poiché sono associati ad una specifica major release.
Quale Formato è Utilizzato?
| Versione | Comportamento |
|---|---|
| 26.0 e precedenti | Viene utilizzato settings*.xml; un file settings*.json viene ignorato. |
| 26.1 (BETA della 27.0) | Viene utilizzato settings*.json; un settings*.xml con lo stesso nome viene ignorato e utilizzato per creare la variante JSON. |
| 27.0 | Viene utilizzato settings*.json; un settings*.xml con lo stesso nome viene ignorato e utilizzato per creare la variante JSON. |
| 28.0 | Viene utilizzato settings*.json; il formato XML non è più supportato o utilizzato per generare la variante JSON. |
Quando un ambiente utilizza esclusivamente la release 27.0 o successive, tutti i file settings*.xml possono essere eliminati in sicurezza se il file in formato JSON è presente.