Precargar la base de datos utilizando el Shell Schema de CakePHP[Instalador]


A veces cuando desarrollamos aplicaciones, estas requieren de un instalador completo que le permita al administrador configurar elementos. Ejemplo de este tipo de aplicaciones (en PHP) son wordpress y ósmosis. Sin embargo, cuando sabemos que una aplicación no será instalada por más nadie, el “instalador” puede ser tan sencillo como un script SQL o, mejor aún, un schema de CakePHP que puedes ejecutar desde la cónsola. A continuación les explico la manera de utilizar los schemas de CakePHP para cargar datos:

Genera el schema de CakePHP


Primero debemos generar el schema de la base de datos ejecutando el siguiente comando:
cake schema generate

Esto generará el archivo en APP/config/sql/schema.php el cual contiene dos funciones  las cuales son las que utilizaremos a continuación.

La inserción de datos


Las funciones before y after son las que podemos utilizar para este fin, estas se ejecutan antes y después (respectivamente) de la creación de cada tabla. Esto representa un problema ya que  evita que se puedan instanciar los modelos: las tablas de los modelos relacionados puede que no existan aún lo cual generará errores. Para superar esta dificultad utilizaremos las funciones de más bajo nivel de Cake, para acceso a la base de datos, de la siguiente manera:

Suponiendo que schema.php tiene la definición de una tabla users (por ejemplo) podemos crear el primer usuario de la aplicación de la siguiente manera:

De este modo insertamos el primer usuario (encriptando la clave con Security, aquí deben suar el método que prefieran), la misma técnica se puede utilizar para pre cargar otros datos – usando arreglos muy parecidos a los que usa CakePHP – para inicializar la aplicación sin necesidad de un instalador y todos los problemas de seguridad que conlleva.

Nota: para cargar la base de datos se debe ejecutar el siguiente comando:
cake schema run create

Gracias a Adrian por su comentario al respecto

Entradas que pueden interesarte