Webホスティングに参加せずにローカルで便利に WordPress サイトを作成または開発できる WordPress Studioツール WordPressドットコムで公開しました。このブログでStudioを紹介したときにWindows用のベータ版でしたが、現在はフルバージョンがリリースされ、以前よりも安定してローカルにサイトを作成できるようになりました。
スタジオ製 WordPressをWebホスティング環境に移行する必要があります。 All-in-One WP Migrationプラグインで移行が可能ですが、テストをしてみるとハングルがすべて壊れる現象が発生しました。 SQLiteデータベースをphpMyAdminなどからインポートできるように、MySQL Debianに変換するコードをPythonにしてみました。
WordPress スタジオ製 WordPress サイトのDBを変換する
WordPress スタジオでテストサイトを作成した後、AIO WP Migrationプラグインを使用してサーバーに移行すると、ハングルが壊れる問題が発生しました。
さまざまな方法で解決しようとしましたが、うまくいきませんでした。
WordPressドットコム 開発者マニュアルによれば、次のドキュメントをコマンドを実行してSQLite DBをMySQL DBに変換できます。
sqlite3 wp-content/database/.ht.sqlite .dump > backup.sql
ただし、phpMyAdminなどから変換されたSQLファイルをインポートしようとするとエラーが発生します。下の写真は クラウドウェイズDatabase Managerから変換されたDBファイルをインポートしたときに発生するエラーを表示します。
"クエリのエラー (1064): Syntax error near 'PRAGMA foreign_keys=OFF' at line 1「エラーメッセージが表示されています。このエラーを解決した後に再試行すると、別のエラーが発生します。もう一度解決してから、再試行すると、他のエラーメッセージが表示されてインポートされなくなります。
これは、SQLiteとMySQLの文法が異なるために発生する問題だそうです。 SQLiteとMySQLの文法の違いは What is the difference between MySQL and SQLite syntax and keywords?を参照してください。
WordPress.comではSQLite3を使用して変換することをお勧めしますが、Pythonを使用してSQLite DBをMySQL DBに変換するコードを作成しました。 SQLite to MySQL Converter ドキュメントで公開したコードに基づいていましたが、 WordPress 環境に合わせて多くの部分が修正されました。
Pythonファイルは Naver カフェにアップロードしました。ダウンロードしてご活用ください。
Pythonファイルをダウンロードして、 /wp-content/database/.ht.sqlite ファイルをMySQL DBファイルに変換できます。
例:
python export.py .ht.sqlite backup.sql
Windowsユーザーの場合は、MicrosoftストアからPythonインストールファイルをダウンロードしてインストールできます。 (私はコマンドプロンプトでPythonと入力したため、Microsoft StoreからPythonをインストールできる画面が開きました。)
Pythonをインストールしてコマンドプロンプトを開き、上記のコマンドを実行してください。
このようにDBファイルを変換した後、phpMyAdminなどからインポートを試みると問題なくインポートになりました。
また、ハングルが割れる現象も発生しませんでした。ただし、限られた環境でテストを行ったため、特定の環境でエラーが発生する可能性があります。 DBを変換またはインポートする際にエラーが発生した場合、エラーメッセージを下記のコメントでお知らせください。ファイルを修正できる場合は修正します。
最後に、
クラウドウェイズ などのホスティングを利用する場合は、簡単に新しいサイトを追加することができます。さらにサイトを作成することが許可されていない場合、またはWebホスティングをまだ選択していない場合 WordPress Studioを使用して、ローカルでサイトの開発/作成作業を進めることができます。
Windows用Studioのフルバージョンがリリースされ、ベータ版よりも安定しているようです。しかし、まだUpdraftPlusのようなバックアッププラグインが機能しないという問題があります。 StudioでSQLite DBを使用しているため、DBに関連するプラグインが正しく機能しない可能性があります。
コメントを残す