domingo, 9 de diciembre de 2018
Conoce Phinx, una forma fácil, rápida y sencilla de hacer migraciones de base de datos.

Conoce Phinx, una forma fácil, rápida y sencilla de hacer migraciones de base de datos.

Muchas de las herramientas de migraciones de bases de datos son complicadas y aveces en proyectos pequeños se nos hace un poco difícil, pues bien PHINX es una herramienta que te lo pone fácil.

¿Que hace phinx y cual es el objetivo?

Pues bien, te crea un script donde tu escribes tus consultas a ejecutar y tu rollback en caso de que quieras recuperar los datos.

El objetivo es tener en todo momentos las espaldas cubiertas.

Vamos a ello.

1-Instalación

  • Instalas composer
    curl -s https://getcomposer.org/installer | php  
  • Instalas Phinx
    php composer.phar require robmorgan/phinx
    php composer.phar install --no-dev
  • Crea tu primera migración

            Primer paso configurar el acceso a nuestra base de datos para ello ejecutamos         

vendor/bin/phinx

 Esto crea un archivo phinx.yml que tendrá 3 entornos, production, development y testing, aunque es muy evidente tu sabrás cual usar lo normal es developmente para desarrollo y production para producción.

Editamos el archivo

vim phinx.yam

Veremos algo así

development:
adapter: mysql
host: localhost
name: nombre_de_tu_bd
user: nombre_de_tu_usuario_de_bd
pass: 'contraseñadebasededatos'
port: 3306
charset: utf8

Creamos las carpetas donde van a ir guardandose nuestras migraciones

mkdir -p db/migrations db/seeds

Wala, ahora creamos nuestra primera migración

vendor/bin/phinx create MiPrimeraMigración

Esto creara un archivo del tipo 20181010......php

Verás que es una clase y dentro te crea un método change, pues bien ya puedes escribir tu código slq, insert, update, delete etc, con $this-> puedes acceder a los distintos método disponibles, tambien puedes usar el metodo up para escribir la ejecución y el down para el rollback, toda esta información la puedes encontrar en la documentación oficial

Documentación

Quienes un ejemplo, claro que sí aqui tienes uno.

En este ejemplo creamos una tabla, luego añadimos un registro y luego la eliminamos con rollback

public function up() 
{
    $t=$this->table('user');
    $t->addColumn('name', 'string',['limit'=>255,'null'=>FALSE])
   ->save();
   $this->query('INSERT INTO user (name) values ('Yus')');
}

 
public function down()
{
    $this->table('users')->drop()->save();
}
 

pues bien para ejecutar la creación de la tabla es tan simple como escribir


vendor/bin/phinx migrate -e development

Si lo que queremos es el rollback

vendor/bin/phinx rollback -t 20181010.... -e development

recuerda que 20181010..... es el hash que te crea phinx cuando haces un create, lo ideal del rollback es ejecutarlo hasta el script anterior al que estamos ejecutando, pero tranquilos tenemos los migrate.

Esto es todo, recuerda que estos post no son escrito en profundidad, si quieres añadir algo adelante.

Quieres ser el primero en responder?