Blog sobre desarrollo WordPress en Español Desarrollo WordPress en Español
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:

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

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

 

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:

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.

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í.

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í.

 

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

Puede que también te interese

Creando el .htaccess perfecto para WordPress
Creando el .htaccess perfecto para WordPress
El fichero .htaccess es un archivo de configuración de Apache. Nos permite establecer reglas en un directorio, por ejemplo, WordPress lo usa para crear una…
Cómo desactivar Emojis en WordPress
Cómo desactivar Emojis en WordPress
A partir de la versión 4.2 de WordPress se ha introducido una nueva característica: Emojis Icons. Permite el uso de los iconos Emoji en los…
Cómo cargar correctamente los archivos JS y CSS si estás desarrollando un tema o plugin a medida
Cómo cargar correctamente los archivos JS y CSS si estás desarrollando un tema o plugin a medida
En éste artículo vamos a tratar sobre cómo cargar correctamente los archivos JavaScript y hojas de estilo css si estás desarrollando un tema o plugin…
Como convertir parámetros por GET en URLs amigables
Como convertir parámetros por GET en URLs amigables
Es muy habitual pasar parámetros por $_GET a una página para procesar algo, o simplemente para mostrar un contenido u otro en función del mismo.…