Saltar al contenido

Migración de Fecha

Descripción General

La función de migración de fechas de Vinyl brinda soporte para migrar fechas de una huso horario a otra.

Advertencia

La migración de fechas es una herramienta muy poderosa, pero también potencialmente peligrosa ya que afectará a todos los seleccionados DateTime columnas en su fuente de datos. Se recomienda encarecidamente precaución y realizar pruebas adecuadas.

Recomendaciones

Se recomienda la migración de fecha para los desarrolladores que buscan realizar una conversión. DateTime columnas de una huso horario a otra.

La huso horario ideal para su fuente de datos es quizás discutible; sin embargo, la práctica recomendada es configurar sus servidores y fuentes de datos para que todos utilicen la misma huso horario. Es probable que UTC sea la mejor opción, ya que cualquier otra huso horario es propensa a cambiar si cambia la ubicación del servidor. Tenga en cuenta también que las instancias de Amazon están configuradas de forma predeterminada para utilizar UTC.

Otra cosa a tener en cuenta es que configurar la huso horario del servidor de su base de datos para que sea la misma que la huso horario de su fuente de datos garantizará que las llamadas a 'Now()' devolverá el valor esperado. Now() devuelve la hora actual según la huso horario de la base de datos.

Al mantener sincronizadas todas las husos horarios de su fuente de datos, puede evitar el dolor de cabeza de la conversión. DateTime datos de una huso horario a otra. Hoy en día, esto no se hace automáticamente, aunque es posible que se implemente en una versión futura.

Limitaciones y Advertencias

A pesar de DateTime Cuando se migran las columnas, hay otros aspectos de su aplicación Vinyl que pueden requerir modificación, incluyendo:

  • Codificado DateTime los valores en las reglas no se ajustan. Si tus reglas incluyen where o select cláusulas con fechas codificadas, deberá ajustarlas manualmente a la nueva huso horario esperada.
  • Cualquier columna que utilice DateAdd o funciones similares para ajustar las husos horarios manualmente también se dejarán como están. Los desarrolladores deberán solucionarlos manualmente.
  • Las versiones de MS SQL Server anteriores a 2016 no son compatibles con AT TIME ZONE función. Como resultado, la migración de fecha se realizará utilizando un desplazamiento de huso horario calculado a partir de las husos horarios de origen y destino a partir del momento actual. Esto puede causar problemas con las husos horarios que utilizan el horario de verano.
  • Las migraciones de fecha se ejecutan en una sola transacción cuando su aplicación/fuente de datos se actualiza a través de un LP. La transacción puede expirar dependiendo de la cantidad de datos a migrar. Si esto sucede, establezca un tiempo más largo CommandTimeOut en su archivo de conexión ayudará a mitigar el tiempo de espera.

Configurar la Migración de Fecha

Para realizar una migración de fecha, ejecute los siguientes pasos:

  • Navegue hasta IDE > Configuración adicional > Migración de fecha
  • Haga clic en + Migración en el panel de Migraciones por fecha
  • Seleccione una Fuente de datos
  • Seleccione una Huso Horario de origen. Esta configuración ya estará completa para las fuentes de datos que tienen un valor no nulo Time Zone.
  • Seleccione una Huso Horario de destino
  • Clic en Guardar**

En este punto, el panel lateral derecho debería llenarse con todos los DateTime columnas en la Fuente de datos seleccionada. Desde aquí puede configurar los ajustes de migración de fecha para columnas individuales.

Si su Fuente de datos no tiene una huso horario configurada, notará que Auditoría DateTime Las columnas utilizarán la huso horario del servidor de la aplicación Vinyl como zona horaria. Source Time Zone. Los datos de auditoría se escriben utilizando la huso horario del servidor de aplicaciones cuando la Fuente de datos no tiene una huso horario configurada. Tenga en cuenta también que Vinyl utiliza el AddedOn y ChangedOn Tipos de uso de columna para determinar si una columna se considera datos de auditoría.

Una vez que haya terminado de ajustar las columnas individuales, puede continuar con los siguientes pasos:

  • En la misma pantalla que arriba, haga clic en el botón Migrar en el panel Migración de fecha.

Esto ejecutará un trabajo en segundo plano para migrar todas las columnas configuradas. La migración de fecha se ejecuta dentro de una sola transacción y bloqueará las tablas en el proceso. Debe asegurarse de que el tráfico en su servidor sea mínimo o nulo para evitar bloqueos.

También se agregarán pasos de gestión de cambios para cada tabla que se migre.

Una vez migradas las fechas, el estado de la migración de fecha cambiará a Complete.

Si ocurre una falla, la transacción de migración de fecha se revertirá y se podrán encontrar registros adicionales en el historial de trabajos en segundo plano.