小ネタ。
wp-cli を使って WordPress の全エンジンを InnoDB に変える方法。
ちまちま ALTER TABLE 発行するのも疲れるので。
こんな感じのシェルスクリプト作って実行すればいいんでないかな。
modify-engine.sh
#!/bin/bash
WP_PATH=${1:-/var/www/html}
TABLES=$(wp --path=${WP_PATH} db tables --all-tables)
for TABLE in ${TABLES}; do
echo "** ${TABLE} **"
wp --path=${WP_PATH} db query "ALTER TABLE ${TABLE} ENGINE=innodb, ALGORITHM=COPY;"
done
現在のテーブルのエンジンが何かを調べたい場合も、wp-cli でできるよ。
$ wp db query "SELECT table_schema, table_name, engine FROM information_schema.tables WHERE table_schema='$(wp eval 'echo DB_NAME;')';"
+--------------+-----------------------------+--------+
| table_schema | table_name | engine |
+--------------+-----------------------------+--------+
| wordpress | wp_commentmeta | InnoDB |
| wordpress | wp_comments | InnoDB |
| wordpress | wp_links | InnoDB |
| wordpress | wp_options | InnoDB |
| wordpress | wp_postmeta | InnoDB |
| wordpress | wp_posts | InnoDB |
| wordpress | wp_term_relationships | InnoDB |
| wordpress | wp_term_taxonomy | InnoDB |
| wordpress | wp_termmeta | InnoDB |
| wordpress | wp_terms | InnoDB |
| wordpress | wp_usermeta | InnoDB |
| wordpress | wp_users | InnoDB |
+--------------+-----------------------------+--------+