ワードプレスで特定のテーブルをダンプ、リストア

ワードプレスにおいて、記事のみを元DBから別DBにインポートしてください!というリクエストがあったので、その対処法を記載します。

通常は、DBまるごとでのダンプリストアが多いのですが、他のテーブルはコピーしたくない、という内容でしたので、ここではテーブル単位でダンプリストアを掛けることにしました。

まずは記事における関連テーブルを調査。wp_postだけではなく、アイキャッチやカテゴリーやタグが絡むため、それらのテーブルも必要でした。

調査後、今回必要になったテーブルは下記の4つ。

wp_post 記事本体
wp_postmeta アイキャッチなどの記事関連データ
wp_term_taxonomy カテゴリー、タグ、カスタムタクソノミとターム名関連データ
wp_term_relationships カテゴリー、タグ、カスタムタクソノミと投稿関連データ

まずは元DBからの指定テーブルダンプです。
cd /root
mysqldump -u root -pルートパスワード 元DB名 wp_posts > wp_posts.sql
mysqldump -u root -pルートパスワード 元DB名 wp_postmeta > wp_postmeta.sql
mysqldump -u root -pルートパスワード 元DB名 wp_term_taxonomy > wp_term_taxonomy.sql
mysqldump -u root -pルートパスワード 元DB名 wp_term_relationships > wp_term_relationships.sql

ダンプした指定テーブルを別DBにてリストア
mysql -u root -pルートパスワード -D 別DB名 < wp_posts.sql
mysql -u root -pルートパスワード -D 別DB名 < wp_postmeta.sql
mysql -u root -pルートパスワード -D 別DB名 < wp_term_taxonomy.sql
mysql -u root -pルートパスワード -D 別DB名 < wp_term_relationships.sql

ドメインの変更がある場合。
コマンドでやってもいいんですが、phpMyAdminも好きなので、こちら上でURL置換w

UPDATE `wp_posts` SET guid=REPLACE (guid,'旧URL','新URL');
UPDATE `wp_posts` SET post_content=REPLACE (post_content,'旧URL','新URL');
UPDATE `wp_options` SET option_value=REPLACE (option_value,'旧URL','新URL');
UPDATE `wp_postmeta` SET meta_value=REPLACE (meta_value,'旧URL','新URL');
UPDATE `wp_posts` SET post_title=REPLACE (post_title,'旧URL','新URL');

環境はCentOS7でMariaDB10.4系でした。CentOS6でmysqlでもいけると思います。

(*^^)v

 COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

指定ディレクトリ以下の肥大化したディレクトリやファイルを検索する

NO IMAGE

Unknown collation: ‘utf8mb4_unicode_520_...

NO IMAGE

apacheやnginxの同時接続数をリアルタイムでモニタリング

NO IMAGE

特定サイズ以上のファイル検索

NO IMAGE

php8系のインストール CentOS7

NO IMAGE

ワードプレスのSuperCache切れ直後、メインに記事ページが?の対応