Pregunta

Desarrollo una aplicación con componentes de cliente grueso y de cliente delgado. También veremos nuestra base de datos de tal manera que los cambios de esquema dan como resultado su propio número de versión y se pueden aplicar scripts de cambio. Sin embargo, los cambios en la base de datos no siempre ocurren en paso con cambios de cliente grueso. Sí, el cambio de base de datos de hoy puede agregar una columna y requerir un en el cliente grueso, pero el cambio de base de datos de mañana podría corregir un error en un procedimiento almacenado que no requiere ningún cambio externo. ¿Cómo puedo codificar el Cliente grueso para probar si es compatible con una versión de base de datos específica cuando algunos son compatibles con retroceso y otros no?

Al igual que a cualquiera le importa, la nuestra es una aplicación .NET que se integra con SQL Server, pero esto parece más una pregunta de versiones que una pregunta de plataforma. A menos que haya una solución específica de plataforma ...

¿Fue útil?

Solución

Puedes crear una mesa, ex. metadatos con dos columnas de cadena y coloque una entrada (o más entradas) con la versión actual del esquema. Supongo que ahora haces algo similar.

Y divide la versión en dos números (como esquema mayor/menor). Cuando cambia el esquema de forma compatible que no es de retroceso, aumenta la versión principal. Después de un cambio compatible con retroceso, solo actualiza la versión menor.

La aplicación utiliza Major para verificar si es compatible con el esquema actual, y Major+Minor se usa para verificar si puede/necesita actualizar el esquema.

Creo que esta es la solución utilizada por la mayoría de las aplicaciones.

Otros consejos

¿Podría adoptar un esquema de número de versión mayor/menor?

Un cambio en el número mayor implica que los clientes necesitan actualización, y el cambio en el número menor no lo hace.

Con cualquiera de estos, los números de versión siempre están aumentando.

Si la base de datos conoce la versión mínima del cliente que requiere, y el cliente conoce la versión mínima de la base de datos que requiere, es una verificación simple para determinar qué necesita actualizar (en todo caso), ahora si encapsula la lógica en un procedimiento almacenado o en código, esa es tu decisión ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top