サーバ移転に伴う作業 : WP-DB編

投稿者: | 2018年7月11日

昨日、当ブログの https 化のためにサーバを移転しました。
※切り替え手順については、サーバを移転しました(https化)をご参照ください。

環境

環境を整理すると以下のようになります。

  • WordPress
  • DB は SQLite 3 (MySQLでも手順は同じ)
  • 現行サーバは10月まで契約済み
  • URLは変更になる

手順

大まかな手順としては、

  • 新サイトに移設(複製)する
  • 約3ヶ月間、現行サイトから新サイトへリダイレクトする

となります。

URL変更に伴う影響

  1. DB
    • サイトURL
    • 投稿内リンク
      など。
  2. その他
    • RewriteRule
    • プラグイン
      • 本体の設定
        • Google アナリティクス
          など
      • 機能を使って追記した記述
    • WordPressを直接編集した内容

今回は「1. DB」に焦点をあてます。
昨日の記事で言うと、[切り替えの手順]-[移行]-[データ置換]にあたります。

DBメンテナンス

編集方法は以下のいずれかになります。

  • 事前に管理画面上から変更する
    この場合、移行期間中はサイトにアクセスできなくなるなどの影響が出ます。
  • DBを直接編集する
    DBをコピーしてから編集することで、移行期間作業中の現行サイトへの影響は回避できますが、DBを直接編集する必要があります。

クライアントツール

Webツールの Adminer でも十分ですが、SQLite であれば GUI クライアントツール「DB Browser for SQLite」も使いやすくオススメです。

パッケージ名は、sqlitebrowser です。

$ whatis sqlitebrowser
sqlitebrowser (1)    - light GUI editor for SQLite databases

仕様

サイトURL、投稿内リンク以外にも使っているものがあれば変更対象になります。

base on データベース構造 – WordPress Codex 日本語版
このページの最終更新日時は 2017年10月15日 (日) 00:16 です。

テーブル:wp_options

フィールド 種別 Null キー 初期値 備考
option_id bigint(20)unsigned PRI auto_increment
option_name varchar(64) UNI
option_value longtext
autoload varchar(20) yes
テーブル名 説明 関連インターフェース画面
wp_options 管理 > 設定で設定されたオプション設定情報を格納(オプション設定リファレンス参照)。プラグインの設定情報が格納されることも多い。 管理画面 > 設定 > 一般設定
管理画面 > 設定 > 投稿設定
管理画面 > 設定 > 表示設定
管理画面 > 設定 > ディスカッション設定
管理画面 > 設定 > メディア設定
管理画面 > 設定 > プライバシー設定
管理画面 > 設定 > パーマリンク設定
管理画面 > 外観 > ウィジェット

wp_options データ内容

option_id option_name 概要 備考
1 siteurl サイトアドレス (URL) サイトのホームページとして WordPress のインストールディレクトリとは異なる場所を設定する場合 home カラムと値が異なる
2 home WordPress アドレス (URL)
3 blogname サイトのタイトル
4 blogdescription キャッチフレーズ

テーブル: wp_comments

フィールド 種別 Null キー 初期値 備考 説明
comment_author_url varchar(200) コメント投稿者のウェブサイトURL

テーブル: wp_links 非推奨

フィールド 種別 Null キー 初期値 備考 説明
link_url varchar(255) リンク URL

テーブル: wp_posts

フィールド 種別 Null キー 初期値 備考 説明
post_content longtext 本文
pinged text ピン通知済み URL

テーブル: wp_users

フィールド 種別 Null キー 初期値 備考 説明
user_url varchar(100) webサイト URI

編集例

投稿記事データの編集

例)ページ内リンク「http://lubricatech.rdy.jp」を「https://lubtech.geo.jp」に変更
-- 対象件数の取得
SELECT COUNT(id) FROM wp_posts WHERE post_content LIKE '%http://lubricatech.rdy.jp%';

-- URL変更
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://lubricatech.rdy.jp', 'https://lubtech.geo.jp') WHERE post_content LIKE '%http://lubricatech.rdy.jp%';

-- 結果確認
SELECT COUNT(id) FROM wp_posts WHERE post_content LIKE '%http://lubricatech.rdy.jp%';
SELECT * FROM wp_posts WHERE post_content LIKE '%https://lubtech.geo.jp%';
例)オプション設定情報の変更
-- 更新対象の確認
SELECT * FROM wp_options ORDER BY option_id LIMIT 5 ;

-- 更新
UPDATE wp_options SET option_value = 'https://lubtech.geo.jp' WHERE option_id = 1;
UPDATE wp_options SET option_value = 'https://lubtech.geo.jp' WHERE option_id = 2;

-- 結果確認
SELECT * FROM wp_options ORDER BY option_id LIMIT 5 ;