
O cliente pede um número na hora, tipo quantos pedidos ficaram em processando no mês, e o servidor não tem phpMyAdmin nem Adminer. Com SSH e a pasta do WordPress já dá: o WP-CLI conversa com o banco usando as credenciais do wp-config.php, sem você digitar senha.
Entre na raiz da instalação e mande o SQL entre aspas. Confira o prefixo antes, porque nem toda instalação usa wp_. O --skip-column-names vai direto pro cliente mysql e tira o cabeçalho, útil quando a saída alimenta um script:
cd /var/www/seusite/html
sudo -u www-data wp db prefix
sudo -u www-data wp db query "SELECT post_status, COUNT(*) FROM wp_posts GROUP BY post_status;"
sudo -u www-data wp db query "SELECT option_name FROM wp_options WHERE autoload IN ('yes','on','auto-on','auto') ORDER BY LENGTH(option_value) DESC LIMIT 10;" --skip-column-names
sudo -u www-data wp db query < relatorio.sql Repare no IN da segunda consulta: até a 6.5 bastava autoload = 'yes', mas da 6.6 em diante o core grava também on, auto-on e auto na mesma coluna, e o filtro antigo esconde boa parte das opções do relatório.
Antes de puxar um dump de 4 GB pela rede, veja quem está ocupando espaço e corte as tabelas de log na exportação:
sudo -u www-data wp db size --tables --human-readable
sudo -u www-data wp db export dump-seusite.sql --exclude_tables=wp_actionscheduler_logs,wp_statistics_visitor O wp db query não é um cliente SQL próprio: ele lê DB_NAME, DB_USER, DB_PASSWORD e DB_HOST do wp-config.php e entrega a query pro binário de mysql ou mariadb que estiver no PATH. Daí a sintaxe do MySQL 8 valer inteira, e daí também o comando quebrar dizendo que não achou o executável quando o banco mora em outro host e ninguém instalou o cliente na máquina do site.
A regra que eu sigo em banco de produção: todo UPDATE nasce como SELECT com o mesmo WHERE, e todo DELETE nasce depois de um wp db export. O db query não tem dry-run nem pedido de confirmação, ele executa na hora.
O retorno do array_map voltou com índice 0, 1, 2 e o código que dependia da chave quebrou. Entenda quando…
Dump de 12 GB que demora horas porque arrasta report_event e cron_schedule. Faça o backup em duas passadas, guarde só…
Escreveu a preference e o Magento 2 continua usando a classe original? Confira a área do di.xml, o generated/code e…
Cadastrou Cor direto na aba Atributos do produto e o filtro por atributo vem vazio. Veja como identificar o tipo,…
A home abre e todo post interno devolve 404 depois da migração. Regrave as regras de reescrita pelo WP-CLI e…
A grid do seu módulo monta o cabeçalho e não traz linha nenhuma. Registre a collection do UI component listing…