A partir de la versión 27.0, Invantive UniversalSQL lee las definiciones de las bases de datos desde settings*.json en lugar de settings*.xml. Los archivos XML existentes se migran automáticamente.
El soporte para el formato XML ya no estará disponible a partir de la versión 28.0 de Invantive UniversalSQL (programada para su lanzamiento alrededor del comienzo de 2028).
Por qué
El formato XML data de 2009 y presenta dos problemas que se resuelven con un cambio de formato.
- Herramientas: leer o generar una configuración requiere XPath y/o XSLT. Sin embargo, la mayoría de los lenguajes analizan JSON sin bibliotecas adicionales. Generar un archivo de configuración por cliente o por entorno se convierte en un ejercicio de plantillas de texto en lugar de uno de XML.
- Elementos obsoletos: el formato XML tiene mucha historia sobre los conceptos de conectividad de base de datos. Muchos elementos ya no son compatibles o relevantes. El formato JSON utiliza los conceptos actuales, por lo que lo que lees es lo que significa el término.
Formato
El formato settings*.json se asemeja mucho al formato XML. Los cambios más importantes son:
<connection>se denominadatabase(singular) odatabases(plural).<database>se denominadataContainer(singular) odataContainers(plural).
Por ejemplo:
{ "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": "..."
}
]
}
]
}
]
}
Se toleran los comentarios y las comas finales cuando se lee un archivo. Los comentarios y las comas finales desaparecen si un producto reescribe el archivo settings*json.
Migración
Se ha realizado un esfuerzo para que la migración sea lo más fácil posible.
La primera vez que un producto de la versión 27.0 lee un archivo settings*.xml para el cual no existe un archivo idéntico con nombre .json, crea ese archivo JSON funcionalmente idéntico junto a él. El archivo XML se deja sin cambios. Se ignoran las propiedades obsoletas.
Los archivos producidos por el descubrimiento automático (settings-discovery*.xml) nunca se migran, ya que están asociados con una versión principal específica.
Qué formato se utiliza
| Versión | Comportamiento |
|---|---|
| 26.0 y anteriores | Se usa settings*.xml; se ignora un archivo settings*.json. |
| 26.1 (BETA de 27.0) | Se usa settings*.json; se ignora un settings*.xml con nombre idéntico y se usa para crear la variante JSON. |
| 27.0 | Se usa settings*.json; se ignora un settings*.xml con nombre idéntico y se usa para crear la variante JSON. |
| 28.0 | Se usa settings*.json; el formato XML ya no es compatible ni se usa para crear la variante JSON. |
Cuando un entorno solo utiliza el lanzamiento 27.0 o posterior, todos los archivos settings*.xml pueden eliminarse de forma segura cuando existe el archivo en formato JSON.