こんにちわ、PHPエンジニアのエンジニア婦人(@naho_osada)です。
PHPエンジニアとして9年~の経験があります。
データベースPostgres、Wordpress3系で更新が止まっていたサイトをバージョンアップするお仕事を経験したことがあります。
今は殆どがMySQLだと思いますが、以前はPostgresで制作する場合も多かったようです。
今回はそのときに行った作業手順を残しておこうと思います。
移行作業手順
操作前には必ずすべてのバックアップを取ってください。
- Postgresデータベースから、データと構造SQLエクスポート(COPYじゃない)
- INSERT文だけ残して後は削除して更新用SQLファイルを作成する
- MySQLの移行先のデータベースを用意(テーブルは作らなくていい)
- 元のWordPressのインストールディレクトリをまるっとコピーしてあげなおす
- コピーしたディレクトリの方のwp-configs.phpを削除
- コピーしたディレクトリの方の/wp-content/db.phpを削除(Postgres使うためのものなので不要)
- コピーしたディレクトリの方の/wp-content/pg4wpを削除(Postgres使うためのものなので不要)
- アクセスしてWordPressのインストール開始、テーブルが作成される
- WordPressがとりあえずインストールできたらMySQLの指定データベースに作成されたテーブルを「すべて空にする」(削除ではない)
- 空にしたらPostgresでエクスポートしてきた「INSERT」の内容をMySQLにインポート
- WordPressにアクセスしてログインできることを確認
- WordPressの更新機能を使って一気に更新!バージョン最新へ!
- そうするとアクセスできなくなる(笑)から、/wp-adminにアクセスし直す。そうするとデータベースの更新をするよ!っていうボタンが出るので更新
- データベースの更新が終わるとWordPressに無事にアクセスできるようになる
- 必要なプラグインの更新をしてサイト内を確認
- 問題がなければ更新完了!おめでとう!
放置しておいた弊害
これ、ちゃんとやっておかないと有名な、というか公式のSearch DBすら使えません。
つまりドメイン変更があった場合はバージョンが古い&Postgresだと詰むということか!?なんて非道な!?
WordPressの古いものはそのまま放置しない方が良いと思いますよ…いくらなんでも!
4.8(※執筆当時)まで来てるのに3.0系って!!
そもそもなぜPostgresで構築されていたのか
以前から、WordPressはPostgresでも構築はできました(※但し私は構築したことはありません。過去の遺物を見てきただけです)。
ですが、PostgresはWordPressの更新のサポート外なんですね。うまくいきませんでした。
それもそうか、MySqlとPostgresはSQLや構造が違うのだから、両方用意するのは割に合わないですね。メジャーな方に合わせると思います。
このサイトに関しては、もう、WordPress本体の更新もできないしセキュリティ的に放置しておかないで、古いから…というレベルでした。
お金ないから仕方ない、気にしていないから放置だったのかな…昨今のセキュリティ事情もありますので、古いバージョンのまま据え置くのはやめていただきたいところです。
悪い奴らにいいように使われてしまうかもしれませんから。
まとめ
- WordPressでPostgresを使って構築している案件は存在する
- 但し存在するのは相当古いもので、現在はほとんどないと推測される
- もし遭遇してそれをバージョンアップする場合は、上記の手順を参考に行うといい
何事もバージョンアップは随時行いましょう。
WordPress案件をPostgresからMySQLへ移行する仕事があった場合の参考になりますように。