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

Seguridad WordPress: proteger el acceso a wp-admin
Seguridad WordPress: proteger el acceso a wp-admin
Uno de los objetivos más importantes para cualquier atacante es el acceso al panel de administración o back-end de nuestro WordPress. Debemos aumentar la seguridad…
Añadir cabeceras HTTP de seguridad en WordPress
Añadir cabeceras HTTP de seguridad en WordPress
En éste artículo vamos a ver cómo podemos enviar cabeceras HTTP de seguridad en nuestra web. Creo que es algo que no se utiliza mucho,…
Forzar el uso de contraseñas seguras en WordPress
Forzar el uso de contraseñas seguras en WordPress
Cuando se habla de seguridad en WordPress (o en internet en general) se suele comentar que uno de los mayores bugs de seguridad se encuentra…
Oculta las notificaciones de plugins y temas en WordPress
Oculta las notificaciones de plugins y temas en WordPress
Es posible que te hayas encontrado alguna vez o tengas un sitio creado con WordPress que tenga multitud de plugins instalados, o algún cliente que…