Bases de datos

  • Herramienta para trabajar con Bases de datos

    Alguna de la siguiente herramientas os pueden hacer falta si trabajas con bases de datos.

    Herramientas que podrás copiar, hacer migraciones de versiones, ver diferencias estructuras y incluso llenar con script automatizados.

    Mysql - Recuperar respaldos de base de datos de mysql o maria-db

    El programa que utiliza para hacer copias de seguridad es mysqldump es un programa que forma parte de los "MySQL Client Programs" de MySQL, que puede ser utilizado para generar respaldos de bases de datos y ser usados o incluso para ser transferidos a otro servidor de base datos SQL .

    Para poder importar la base datos comprimida (xz) lo hacemos desde terminal con la siguiente instrucción.

    mysql -u usuario -p base_datos < <(xz -cd < copia_de_base_datos_comprimida.dump.xz)

     

    Fuente: LinuxTotalLinuxTotal

    Mysqldump : Copia de seguridad.

    Nuestro responsable de sistema utilizar script que por cada base datos crea un archivo de backup utilizando mysqldump y luego lo comprime con xz.,

    Para hacer una copia de seguridad de solo la estructura según en este link , utiliza la misma herramienta de pero de la siguiente forma:

    $ mysqldump -uUsuario -p -h servidorMySQL --databases basea1 -d > basea1.sql
    $ mysqldump -uUsuario -p -h servidorMySQL --databases basea2 -d > basea2.sql

    Realizará una copia de estructura de la base datos.

    Si los nombres de la bases de datos son distintas, y las  va comparar, es recomendable que comentes el create y use ya produce un error en esas lineas. Como dice la fuente no entiendo muy bien porque.

    sqlt-diff: Diferencias estructura

    Aun no lo probé como el comenta en la web, la instrucción es

    $sqlt-diff basea1.sql=MySQL basea2.sql=MySQL > diff.sql

    Ten encuenta que busca las diferencias, por lo que los autoincrement tambien los tiene en cuenta,en mi caso eso es un inconveniente, ya que las estructuras deben ser iguales, pero el contenido no , por lo que el autoincremento es distinto.

    Phinx : Migraciones y seed

    Este no es un programa, necesita una instalacion un poco mas compleja, ya requiere de composer, en fin, en su web puedes ver como instalarlo y mucha documentacion.

    Nosotros la utilizamos como librería mas para nuestros proyectos en php, según su web es la forma mas nativa de php de hacer migraciones de una base de datos.

    La cuestion es que puedes hacer cambios en la base de datos de una forma ordenada y controlada, como si fuera un controlador de versiones de la base de datos. Lo que hizo que empezarámos a utilizarlo es el metodo down, con el que podemos estado de la estructura de datos en versiones anteriores.

    La instalación  de  Phinx

    Como ya dije , necesitas tener composer en el servidor  o equipo local donde tenga SQL . La instalación de composer ya explicaré como, ya que ahora no lo recuerdo.. :-) lo unico que recuerdo es que requirió tener instalado php 7.2

    Para instalar phix:

    #composer require robmorgan/phinx
    php composer.phar require robmorgan phinx
    

    En el siguiente link podrás ver información muy buena y en español para comprenderlo y utilizarlo.

    Nosotros de momento solo voy explicar como aplicamos la migraciones.

    php vendor/bin/phinx migrate -e development

    Nosotros en la configuracion utilizamos nombres de los distinto proyectos o ramas, en vez development, esto se puede cambiar en el fichero phinx.yml.