Migración de esquema
En Ingeniería de software, migración de esquema (también migración de bases de datos, gestión del cambio de base de datos[1][2]) se refiere a la gestión de cambios incrementales, reversibles relacionales esquemas de base de datos. Una migración de esquema se realiza sobre una base de datos cada vez que es necesario actualizar o revertir el esquema de la base de datos a una versión más reciente o más.
Las migraciones se realizan mediante programación mediante un herramienta de migración de esquemas. Cuando se invoca con una versión del esquema deseado especificado, la herramienta automatiza la aplicación sucesiva o revocación de una apropiada secuencia de cambios de horario hasta que se trae al estado deseado.
Aunque más herramientas de migración esquema pretenden minimizar el impacto de los cambios de horario en los datos existentes en la base de datos sometidos a migración, preservación de datos en general no está garantizada porque cambia esquema tales como la supresión de una columna de base de datos puede destruir datos (es decir, todos los valores almacenados bajo esa columna para todas las filas de esa tabla se eliminan). Por lo tanto, la migración esquema normalmente sólo se utiliza cuando los datos en la base de datos no están real ni valiosos, tales como en desarrollo de software, donde los desarrolladores trabajan solamente con los datos de prueba (posiblemente generado). Casi nunca se realizan migraciones esquemas programáticos en producción por la misma razón.
Contenido
- 1 Migración de esquemas de desarrollo ágil de software
- 1.1 Relación con sistemas de control de revisión
- 1.2 Relación con la evolución del esquema
- 1.3 Ventajas
- 2 Herramientas disponibles
- 3 Referencias
Migración de esquemas de desarrollo ágil de software
En el desarrollo aplicaciones de software respaldado por una base de datos, desarrolladores la aplicación general de desarrollo código fuente en tándem con un esquema de base de datos en constante evolución. El código tiene típicamente rígidas expectativas de qué columnas, tablas y restricciones están presentes en el esquema de base de datos cada vez que necesita interactuar con uno, tan sólo la versión de esquema de base de datos contra el cual se desarrolló el código se considera totalmente compatible con esa versión de la fuente del código.
En pruebas de software, mientras que los desarrolladores pueden Mock la presencia de un sistema de base de datos compatible pruebas unitarias, cualquier nivel de pruebas mayor (ej.: pruebas de integración o pruebas del sistema) es común para los desarrolladores probar su aplicación contra una base de datos local o remota prueba esquemáticamente compatible con la versión de código fuente bajo prueba. En aplicaciones avanzadas, la migración en sí puede ser sujeto a pruebas de migración.
Con tecnología de migración de esquemas, datos modelos ya no necesitas estar completamente diseñado por adelantado, y es más capaz de ser adaptado con cambiar los requisitos del proyecto a lo largo de la ciclo de vida de desarrollo de software.
Relación con sistemas de control de revisión
Equipos de desarrolladores suelen utilizan software sistemas de control de versiones para gestionar y colaborar en los cambios realizados en las versiones del código fuente. Desarrolladores pueden convertirse en divergentes, relativamente mayores o más reciente sucursales del mismo código fuente para hacer cambios y adiciones durante el desarrollo.
Suponiendo que el software bajo desarrollo interactúa con una base de datos, todas las versiones del código fuente pueden ser asociada con el esquema de al menos una base de datos con los cuales es compatible.
Bajo buena pruebas de software práctica, esquema de prueba pueden realizar migraciones de bases de datos para asegurarse de que su esquema es compatible con el código fuente. Para agilizar este proceso, una herramienta de migración de esquema se invoca generalmente como parte de un automatizado compilación de software como un prerrequisito de la fase de testing automatizado.
Las herramientas de migración esquema pueden decirse para resolver los problemas de control de versiones para los esquemas de base de datos así como sistemas de control de versión resolver problemas de control de versiones de código fuente. En la práctica, la migración esquema muchas herramientas en realidad dependen de una representación textual de los cambios de esquema (como archivos que contienen sentencias SQL) tal que el historial de cambios de esquema versiones efectivamente puede almacenarse junto a fuente del programa código dentro de VCS. Este enfoque asegura que la información necesaria para recuperar un esquema de base de datos compatible para una rama particular código es recuperable desde el árbol de código fuente propia. Otra ventaja de este enfoque es el manejo de cambios conflictivos concurrente de esquema; los desarrolladores simplemente pueden utilizar sus herramientas de resolución de conflictos basados en texto normal para conciliar las diferencias.
Relación con la evolución del esquema
Herramientas de migración esquema podrían ser visto como una facilidad para rastrear la historia de un esquema evolutivo.
Ventajas
Los desarrolladores no es necesitan quitar la base de datos test entero con el fin de crear una nueva base de datos test desde cero (por ejemplo mediante scripts de creación de esquemas de herramientas de generación de DDL). Además, si generación de datos de prueba cuesta un montón de tiempo, los desarrolladores pueden evitar regenerar los datos de prueba para los cambios pequeños, no destructivos al esquema.
Herramientas disponibles
- Ruta migratoria -herramienta de migración de base de datos (para Windows, OSX, Linux, Android y la JVM) donde las migraciones están escritas en SQL o Java
- LiquiBase -cruz plataforma herramienta donde están escritas las migraciones en YAML, JSON, XML y SQL.
- Registro activo (migraciones) -herramienta de migración de esquemas para Ruby en proyectos Rails basado en Active Record.
- Ruckusing-migraciones -herramienta de migración de esquema para proyectos PHP.
- Phinx -otra herramienta de migración de PHP framework-independiente.
- Migraciones MyBatis -pretende ser la mejor herramienta de migración de su clase
Referencias
- ^ https://www.liquibase.org/ Liquibase Refactorización de base de datos
- ^ https://flywaydb.org/ Ruta migratoria: El base de datos ágil migración marco para Java
|