質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

1446閲覧

WordpressのDBをMySQLからpostgresに変更しようとしているのですが、、、

Hayato1201

総合スコア220

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2020/12/29 03:35

編集2020/12/29 07:18

今まで Wordpress を MySQL で運用していましたが今回 postgres に変更したいです。
pgloader を使って一旦 MySQL を postgreSQL に移行しましたが、wordpress でpostgreSQL に接続するにはどうすれば良いのでしょうか?

参照 ← この様に pg4wp というプラグインを使って使用することが可能な様ですがこちらは wordpress をインストールする段階で postgres にする方法の様です。実際にこの通りに行うと wordpress のサイトにアクセスした際に install.php にリダイレクトしようとします。しかし当然もう wordpress はインストール済みで以前 install.php も削除してしまっているためエラーとなります。

どの様にすれば mySQL から postgres に移行できるのでしょうか? 再度 install.php を追加して wordpress の再インストールをするしかないのでしょうか?

ーーーーーー追記ーーーーーー
再度 install.php を追加して 際インストールを行ったところテーマやプラグインはとってこられている様ですが記事が表示されないのと管理画面が表示されません。 DB の方を確認したところ wp_posts には記事の情報が存在しているため問題なく DB 移行できていると思うのですが、なぜ取ってくる事ができていないのでしょうか? debug 方法などありますか?

サーバーのログを確認した所以下の様なエラーがいくつか出ていました。column "ID" does not exist の様に出ていますが、という事は MySQL → postgres の移行で失敗しているのでしょうか?

2020-12-29T06:21:44.250912+00:00 app[web.1]: [29-Dec-2020 06:21:44 UTC] PHP Warning: pg_query(): Query failed: ERROR: column "ID" does not exist
2020-12-29T06:21:44.251219+00:00 app[web.1]: LINE 1: ...r, EXTRACT(MONTH FROM post_date) AS month, count( "ID" ) as ...
2020-12-29T06:21:44.251616+00:00 app[web.1]: ^ in /app/wp-content/pg4wp/driver_pgsql.php on line 139
2020-12-29T06:21:44.251962+00:00 app[web.1]: [29-Dec-2020 06:21:44 UTC] WordPress データベースエラー: ERROR: column "ID" does not exist
2020-12-29T06:21:44.252228+00:00 app[web.1]: LINE 1: ...r, EXTRACT(MONTH FROM post_date) AS month, count( "ID" ) as ...
2020-12-29T06:21:44.254016+00:00 app[web.1]: ^ for query SELECT YEAR(post_date) AS year, MONTH(post_date) AS month, count(ID) as posts FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC made by require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/luxeritas/home.php'), thk_call_sidebar, apply_filters('thk_sidebar'), WP_Hook->apply_filters, {closure}, get_sidebar, locate_template, load_template, require_once('/themes/luxeritas/sidebar.php'), dynamic_sidebar, WP_Widget->display_callback, WP_Widget_Archives->widget, wp_get_archives

さらにデータベースのスキーマを確認した所 MySQL では wp_posts のカラム名が ID なのに対し postgres の方は小文字の id でした。下記で無理やりカラム名を変えようと思ったのですが

SQL

1ALTER TABLE wp_posts RENAME column id to ID;

ERROR: column "id" of relation "wp_posts" already exists

となり、既にデータがあるためか変更できませんでした。何か解決策はありますでしょうか?

ーーーーーー追記
上記 postgres は大文字と小文字を区別しない?仕様なのかそのため id という列が既に存在するという事になった様です。。ではその場合 driver_pgsql.php の方を変更しなくてはならないのでしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問