Las migraciones de Codeigniter son una característica destacada de este framework para php. En un principio empecé a investigar este concepto buscando algo similar de .Net llamado Code First. En realidad lo que buscaba era montar una estructura desde el código hacia la base de datos. De esta manera el framework se encargara de la creación, conexión y administración de objetos de base de datos. La ventaja que tiene CodeIgniter radica en que las migraciones son secuenciales y sirven para versionamiento. Adicionalmente se puede ir hacia adelante o hacia atrás ejecutando las instrucciones que le indiquemos, lo cuál me parece excelente. Desde mi punto de vista es una funcionalidad enfocada más para mantenimiento, pero yo la uso para desarrollo evolutivo.
Photo by Lic. Marcos Gasparutti
Configuración y habilitación
Para habilitar el uso de esta característica hay que abrir el archivo “migration.php” ubicado en la carpeta de configuraciones. Lo primero que se debe cambiar es la variable “migration_enabled” a TRUE ya que normalmente viene en FALSE. Ahora debemos crear la carpeta “migrations” en la ruta de la aplicación ya que no existe por defecto. En la configuración se relaciona la nueva ruta con la constante APPPATH que ya está definida. Se pueden usar dos formas de nombrar los archivos, de forma secuencial o por fecha.
Cada una tiene ventajas y desventajas que hay que evaluar, por un lado un secuencial es mucho más sencillo de controlar. El problema es que si se presenta un error y queremos ubicarlo antes de una versión ya instalada no se van a poder usar los archivos ya existentes y habría que renombrarlos todos. El uso de fechas si permite ingresar correcciones a versiones anteriores donde se puede devolver y luego ir a la actual. El formato de las fechas es el que me presenta problemas, pero actualmente es el método que uso para el proyecto Kentana.
Llamado y gestión de las migraciones
Es importante saber el nombre asignado a la última migración para ponerlo en la configuración. Luego se debe colocar el llamado de la migración en un controlador para que sea ejecutado. Es importante tener un control sobre los errores que se presentan normalmente en desarrollo y pruebas. También hay que verificar el valor de la tabla “migrations” que esté acorde con la respuesta que esperamos. Sin embargo, las ventajas son muy grandes porque se pueden enviar comandos de BD y de librerías propias. La clase dbforge es especial para comandos de base de datos y esta muy bien diseñada. Tiene la finalidad de normalizar los comandos (querys) de diferentes motores. Si en un momento se cambia el motor de base de datos, no hay que hacer cambios en los archivos que ya hemos creado.
Quieres preguntarme algo más sobre el tema >> Envíame un mensaje
Documentación oficial >> Clase Migration de CI y Clase Database Forge