WordPressを2.xから使ってきて2.x→3.0→4.0と数度のメジャーアップグレードを経験してきたのでその都度データベースのアップグレード等が当サイトでは行われてきました。
WordPressの歴史を見る限り、バージョン2.0は2005年12月26日にリリースされているのでその辺りから当サイトはWordPressを利用していると思います。その前はhtml、css、jsを手書きでせこせこと書いていましたが、逆にphpとデータベースを使わず、クライアントサイドだけでサイトの絵画処理が実行されていたのでサイト自体の処理は昔の方が圧倒的に早かった。
さて、現在WordPressを使っていてバージョンが4.9.9であり、次の5.0(執筆時の最新は5.1)にアップグレードしていない人はまだたくさんいると思いますが、Windowsと同じくいつかはセキュリティーパッチがリリースされなくなります。したがって、アップデートするなら時間のある時にサイトのファイルとデータベースをバックアップして5.x系にアップデートした方が良いでしょう。
データベースのアップグレードをした方が良い理由
なお、データベースのバックアップは面倒でも必ずした方が良い。理由はたくさんありますが、例として
- WordPress 4.1.xから4.2へアップデートした場合、データベースの中身をutf8からutf8mb4に自動的にアップグレードする。
サーバー側が対応していない場合はutf8からutf8mb4への自動アップグレードは行われない。
上記については下記の別記事で紹介しているので下記参照のこと。
簡単に説明すると、ローカルで編集しており、そこから本番環境(ウェブサーバー)に編集後サイトを反映(コピー)した場合、ウェブサーバー側で実はデータベースがutf8mb4に対応していないからエラーが出てしまい、サイトが表示されなくなってしまうということもあり得る。WordPress 4.2、MySQL 5.5.3及びutf8mb4についてこの記事は自分及び同じ問題にさしあたっている人の為の資料として公開しています。何か問題 及び 修正追加等があればコメント欄に書き込んでくださ...
しかも、ワードプレスのメジャーアップグレードではなくたかだか4.1から4.2へのアップグレードなのにだ。 - メジャーアップグレードの場合、4.xから5.xなどアップグレードしたはいいが、プラグインが新しい5.xに対応していなかったりもする場合がある。
- WordPressのアップグレードだけの問題ではなく、プラグインがサーバー側の各種アプリケーションのアップデートについていけない場合がある。例えば、データベース側の合アップグレードで内部処理を替えられてしまった場合等。この場合プラグインはMySQL 5.0.45までは対応していたが、サーバー側がMySQL 5.3に更新してしまったときにWordPressがhttp 500エラーを吐き出してしまった。このような件は以下の記事を参照の事。
プラグインのアップデートでInternal Server Error特定環境下にてWordPressのプラグインをアップデートするとHTTP Error 500 Internal server errorが勃...
WordPressのアップデート・アップグレード時に何が行われるのか?
さて、本題のWordPressがアップデート、アップグレードされたときに何が行われるのか?ですが、使用しているWordPressのデータベースのwp_options内のdb_versionのフィールドの数値が上がるだけです。例えば、
- WordPress 4.9系統から WordPress 5.0系統にアップグレードした場合、db_versionが38590から43764に代わります。db_versionについては以下を参照の事。
https://wpdocs.osdn.jp/WordPress_%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E4%B8%80%E8%A6%A7または、英語版の完璧な方はこちらを参照。
WordPress 5.xにアップグレードする時にチェックされる事
WordPress 4.9系から5.x系にアップグレードされるとき、実際にはデータベースのアップグレードは行われない。
しかし、アップグレードのプロセス中に新しいGutenbergプラグインが既に実装されているかをチェックする。
また、前の段落で記したようにデータベースのwp_options内のdb_versionのフィールドの数値が38590から43764(5.0系)のに上がるだけです。
なお、WordPress 4.9系から WordPress 5.1系にアップグレードした場合はdb_versionのフィールドが44719に代わっているはずです。
以下の参照