WP-CLI

WP-CLI Parte 5, trabajando con la base de datos

Quinta entrega de la serie de entradas sobre WP-CLI. Toca hablar de cosas que podemos hacer con la base de datos a través de la línea de comandos.

Vamos a hablar del comando wp db, que dispone de los siguientes subcomandos:

  • wp db check, lista el estado de la base de datos y de cada una de sus tablas.
  • wp db cli, abre MySQL en la consola utilizando las credenciales establecidas en wp-config.php.
  • wp db create, crea una nueva base de datos (utilizando el nombre establecido en wp-config.php, si no existe).
  • wp db drop, elimina la base de datos (utilizando el nombre establecido en wp-config.php).
  • wp db export, para exportar la base de datos.
  • wp db import, para importar una base de datos Import a database from a file or from STDIN.
  • wp db optimize, para optimizar la base de datos.
  • wp db prefix, muestra el prefijo de la base de datos.
  • wp db query, para ejecutar una consulta contra la base de datos.
  • wp db repair, repara la base de datos.
  • wp db reset, elimina todas las tablas de la base de datos.
  • wp db search, para buscar una cadena en la base de datos.
  • wp db size, muestra el nombre de la base de datos y su peso.
  • wp db tables, para mostrar un listado de las tablas de la base de datos.

Vamos a ver algunos ejemplos:

Un primer vistazo a la base de datos desde la línea de comandos

Siempre está bien echar un vistazo a nuestra base de datos: ¿cúantas tablas hay? ¿Cuál es el peso total de la base de datos? ¿Cúal es el peso de cada tabla? ¿Cuantos estragos ha causado la pluginitis en nuestra base de datos?, etc…

El comando wp db tables nos muestra un listado de todas las tablas de la base de datos:

wp db tables

Podemos obtener este listado en pantalla (por defecto) o exportarlo a un CSV, añadiendo --format=csv.

wp db tables

También podemos hacer un checkeo de la base de datos con el comando wp db check. Este comando no admite parámetros.

wp db check
wp db check

Especialmente útil el comando wp db size. Obtendremos información sobre lo que pesa cada tabla de nuestra base de datos. Acepta los siguientes parámetros:

  • [--size_format], para devolver únicamente el peso en bytes (b, por defecto), kilobytes (kb) ó megabytes(mb) de la base de datos.
  • [--tables], para segmentar la información y ver lo que pesa cada tabla de manera independiente.
  • [--format], para establecer la salida de la información en pantalla: table (por defecto), csv ó json.
  • [--network], para listar todas las tablas en una instalación multisite
  • [--all-tables-with-prefix], para listar todas las tablas con el prefijo por defecto, incluso si no están registradas en $wpdb.
  • [--all-tables], lista todas las tablas en la base de datos independientemente del prefijo, incluso si no están registradas en $wpdb.

Por ejemplo para ver el tamaño de las tablas de nuestra base de datos de manera individual, ejecutaremos:

wp db size --tables
wp db size

Crea, borra, exporta e importa una base de datos desde la línea de comandos

Acciones que son el pan nuestro de cada día, y que con WP-CLI podemos realizar a golpe de comando. Como mejor se ve es con ejemplos:

wp db create

Ejecuta la instrucción SQL CREATE_DATABASE, utilizando las credenciales DB_HOST, DB_NAME, DB_USER y DB_PASSWORD especificadas en el archivo wp-config.php.

wp db drop

Ejecuta la instrucción SQL DROP_DATABASE, utilizando las credenciales DB_HOST, DB_NAME, DB_USER y DB_PASSWORD especificadas en el archivo wp-config.php. Este comando acepta el parámetro --yes, para responder automáticamente SI a las preguntas de confirmación de borrado de la base de datos.

Para exportar nuestra base de datos, utilizaremos el comando wp db export. Este comando ejecuta la instrucción mysqldump, utilizando las credenciales DB_HOST, DB_NAME, DB_USER y DB_PASSWORD especificadas en el archivo wp-config.php. Acepta como parámetros:

  • [<file>], el nombre que queremos dar al fichero sql resultante. Si se omite, se creará un fichero con el nombre de la base de datos.
  • [--<field>=<value>], argumentos extra que pueden pasarse a mysqldump.
  • [--tables=<tables>], donde podemos definir una lista separada por comas con el nombre de tablas específicas que queremos exportar. Si no se especifica nada, se exportan todas las tablas.
  • [--exclude_tables=<tables>], donde podemos definir una lista separada por comas con el nombre de las tablas que NO queremos exportar. Si no se especifica nada, se exportan todas las tablas.
  • [--porcelain], para devolver en la salida únicamente el nombre del fichero exportado

Para importar una base de datos, utilizaremos el comando wp db import. Este comando ejecuta SQL Queries, utilizando las credenciales DB_HOST, DB_NAME, DB_USER y DB_PASSWORD especificadas en el archivo wp-config.php. No crea la base de datos por sí mismo, si esta no existe previamente. Acepta los siguientes parámetros:

  • [<file>], el nombre del fichero a importar.
  • [--skip-optimization], para evitar comprobaciones de claves y mejorar el rendimiento.

Reparando y optimizando una base de datos con WP-CLI

En alguna ocasión puede darse el caso de que tengamos algunas tablas marcadas como defectuosas o corruptas. Es entonces cuando podemos hacer uso del comando wp db repair. Éste comando ejecuta la instrucción REPAIR TABLE de MySQL, utilizando las credenciales DB_HOST, DB_NAME, DB_USER y DB_PASSWORD especificadas en el archivo wp-config.php. Siempre y cuando el motor de almacenamiento soporte esta instrucción. Más información aquí.

wp db repair

En una línea muy parecida tenemos el comando wp db optimize. Ejecuta la instrucción OPTIMIZE TABLE de MySQL, utilizando las credenciales DB_HOST, DB_NAME, DB_USER y DB_PASSWORD especificadas en el archivo wp-config.php. Siempre y cuando el motor de almacenamiento soporte esta instrucción. Más información aquí.

wp db optimize

Hasta aquí el quinto artículo de la serie sobre WP-CLI. Dispones de información más detallada en la página oficial.

¿Te ha resultado útil esta información? 🍺

Si este post te ha resuelto un problema, invítame a un café o a una cerveza. Con este pequeño gesto me animas a seguir escribiendo.

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *:

  • El fin del tratamiento es únicamente la moderación de comentarios para evitar spam
  • La legitimación es tu consentimiento al comentar
  • No se comunicará ningún dato a terceros salvo por obligación legal
  • Tienes derecho al acceso, rectificación y eliminación de los comentarios