Pregunta

Deseo migrar la base de datos de una aplicación web heredada de SQL Server a MySQL. ¿Cuáles son las limitaciones de MySQL que debo tener en cuenta? ¿Y qué elementos serían parte de una lista de verificación completa antes de saltar a modificar el código?

¿Fue útil?

Solución

Lo primero que comprobaría son los tipos de datos: la definición exacta de los tipos de datos varía de una base de datos a otra. Crearía una lista de mapeo que me diga a qué mapear cada uno de los tipos de datos. Eso ayudará a construir las nuevas tablas. También verificaría las tablas o columnas de datos que no se están utilizando ahora. No tiene sentido migrarlos. Haga lo mismo con las funciones, trabajo, sps, etc. Ahora es el momento de limpiar la basura.

¿Cómo accede a los datos a través de sps o consultas dinámicas desde la base de datos? Verifique cada consulta ejecutándola en una nueva base de datos de desarrollo y asegúrese de que sigan funcionando. Nuevamente hay diferencias entre cómo funcionan los dos sabores de SQl. No he usado mi sql, así que no estoy seguro de cuáles son algunos de los puntos de falla comunes. Mientras lo hace, es posible que desee cronometrar nuevas consultas y ver si pueden optimizarse. La optimización también varía de una base de datos a otra y, mientras lo hace, probablemente haya algunas consultas de bajo rendimiento en este momento que puede solucionar como parte de la migración.

Las funciones definidas por el usuario también deberán analizarse. No olvide estos si está haciendo esto.

No olvide los trabajos programados, estos también deberán revisarse y recrearse en myslq.

¿Importa algún dato en un horario regular? Todas las importaciones deberán reescribirse.

La clave de todo es usar una base de datos de prueba y prueba, prueba, prueba. Pruebe todo, especialmente los informes o trabajos trimestrales o anuales que pueda olvidar.

Otra cosa que quieres hacer es hacer todo a través de scripts que estén controlados por la versión. No pase a producción hasta que pueda ejecutar todos los scripts en orden en dev sin fallas.

Otros consejos

Una cosa que olvidé, asegúrese de que la base de datos de desarrollo desde la que está ejecutando la migración (la base de datos del servidor sql) se actualice desde la producción inmediatamente antes de cada ejecución de prueba. Odio que algo falle en la producción porque estabas probando con registros obsoletos.

Es casi seguro que su código de cliente sea la parte más compleja para modificar. A menos que su aplicación tenga un conjunto de pruebas de muy alta calidad, tendrá que hacer muchas pruebas. No puede confiar en que nada funcione igual, ni siquiera en las cosas que podría esperar.

Sí, las cosas en la base de datos tendrán que cambiar, pero el código del cliente es donde está la acción principal, necesitará mucho trabajo y pruebas rigurosas.

Olvídese de migrar los datos, eso es lo último que debe tener en mente; el esquema de la base de datos probablemente se puede convertir sin demasiada dificultad; otros objetos de la base de datos (SP, vistas, etc.) pueden causar problemas, pero el código del cliente es el foco de los problemas.

Casi todas las rutinas que ejecutan una consulta a la base de datos deberán cambiarse, pero absolutamente todas deberán probarse. Esto no será trivial.

Actualmente estoy buscando migrar la base de datos principal de nuestra aplicación de MySQL 4.1 a 5, eso es una diferencia mucho menor, pero seguirá siendo una tarea muy, muy grande.

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