Migraciones y seeds con Phinx, controla tu base de datos

Controla las migraciones y seeds con Phinx
Vamos a ver lo sencillo que es manejar las migraciones y seeds con Phinx en php, si no conoces el concepto de migraciones y seeds es muy sencillo, las migraciones nos sirven para tener un control de versiones de nuestra base de datos, y los seeds para llenar las tablas con datos para agilizar el desarrollo.

Existen muchos motivos para utilizar Phinx, el uso de frameworks como Codeigniter 3 que no incorporan esta funcionalidad, el desarrollo sin frameworks o incluso querer utilizar otra herramienta distinta a la que nos provee el framework utilizado, por ejemplo Laravel 5.

Ahora que sabemos para qué nos puede ser útil Phinx vamos a crear unos cuantos ejemplos, veremos el proceso de instalación, configuración, desarrollo y ejecución de migraciones, actualizar migraciones, añadir foreign keys y llenar las tablas con datos haciendo uso de los seeds, espero que te resulte útil la entrada.

Migraciones y seeds con Phinx en Php

Lo primero que tenemos que tener instalado en nuestro equipo es composer ya que vamos a realizar la instalación utilizando este comando, yo voy a partir con un directorio vacío.

Ahora que tenemos instalado phinx vamos a crear el archivo de configuración utilizando el siguiente comando dentro del proyecto.

Si abres el proyecto verás que se ha generado un nuevo archivo llamado phinx.yml con el siguiente contenido.

Este archivo es muy sencillo, primero tenemos los paths donde se crearán las migraciones y los seeds, después simplemente los entornos y para cada uno una conexión con cada base de datos para poder realizar las operaciones.

Para nuestro caso vamos a trabajar con el entorno development así que modifica los datos de dicha conexión.

Primera migración con Phinx

Para crear nuestra primera migración simplemente ejecuta el siguiente comando dentro del proyecto.

El comando anterior habrá creado un archivo y sus directorios de la siguiente forma, ./db/migrations/20161108132636_create_users_table.php, vamos a abrir el archivo para definir la tabla de usuarios.

El método change es el lugar ideal para escribir las migraciones ya que él se encarga automáticamente de hacer el rollback (deshacer la operación).

En este caso simplemente creamos una tabla users con $this->table(‘users’) y le añadimos las columnas que necesitamos, muy sencillo.

Para poder crear la tabla desde esta migración debemos utilizar el método create() y no save(), de otra forma la tabla no será generada.

Crear tablas a través de migraciones en Phinx

Para que nuestra migración se convierta en una tabla dentro de nuestra base de datos simplemente ejecuta el siguiente comando en la terminal.

Si ahora revisas tu base de datos verás que se han creado 2 tablas nuevas (si la base de datos estaba vacía), una llamada phinxlog para llevar el control de versiones y la de users que acabamos de crear.

Ejecutar una migración específica con Phinx

Ejecutar una migración específica es muy sencillo, simplemente debemos ejecutar el siguiente comando.

Deshacer migraciones con el comando Rollback

Ya hemos dicho que gracias al método change podemos deshacer las migraciones de forma muy sencilla, para hacerlo vamos a ejecutar este comando.

Si ahora revisas la base de datos verás que la tabla users ha sido eliminada ya que la última migración justamente hacía lo contrario, crearla.

Modificar tablas con Phinx

Es algo muy común querer modificar una tabla a posteriori a lo largo de un desarrollo, para ello Phinx nos provee el método update(), para entenderlo mejor vamos a crear una nueva migración para añadir una columna llamada city a la tabla users.

Abre el archivo que se ha creado y añade el siguiente código.

Si ejecutas la migración y revisas la tabla users verás que a continuación de la columna email ha aparecido la columna city.

Si quieres crear migraciones con Phinx que tengan foreign keys también puedes hacerlo, para ello primero vamos a crear la migración Posts y después añadimos el siguiente código en el archivo generado.

Ejecuta la migración y tendrás una nueva tabla con una foreign key apuntando a la tabla users.

foreign-keys-migraciones-phinx
Si quieres revisar el estado de tus migraciones simplemente debes ejecutar el siguiente comando.

status-migraciones-phinx

Trabajo con Seeds en Phinx utilizando Faker

Faker, cómo su nombre indica, nos ayuda a introducir datos falsos para el desarrollo rápido de aplicaciones con datos lo más reales posibles, para instalar Faker simplemente ejecuta el siguiente comando.

Crear un archivo de seed con phinx es muy sencillo, simplemente ejecuta el siguiente comando.

Eso habrá creado un archivo ./db/seeds/UsersSeeder.php, el cual vamos a abrir para poder insertar 100 usuarios de prueba de una vez.

El código anterior simplemente monta un array con 100 arrays y cada uno de ellos define un usuario, aunque eso por sí sólo no sirve de nada, para que los usuarios se inserten debemos ejecutar el siguiente comando.

Ya tienes 100 nuevos usuarios bastante reales en tu tabla users ;), no puede ser más sencillo, impresionante.

Ya sabes cómo manejar migraciones y seeds con Phinx, cómo puedes ver es realmente sencillo, de aquí en adelante simplemente debes revisar la documentación para poder realizar todo lo que necesites, allí lo tienes todo.

Añade un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies
PHP 7, React Native, Angular, Ionic, Vue.js 2 y mucho más, aprende todo desde 0 con nuestros cursos ahoraVer cursos