99円でWordPress!

このサイトはWordPress(SQLite)+ロリポエコノミープランで動いています

WordPressコアへのSQLite公式実装は案外時間がかかるかもしれない話

Image Credits: Fikret Tozak / Unsplash
Image Credits: Fikret Tozak / Unsplash

順調に進んでいるかのように思える、WordPressへのSQLiteコア実装についてですが、一部から時期尚早といった声などもあがっているようです。どういうことか確認してみました。

2023年4月のステータス

このプロジェクトのメイン開発者であるAri Stathopoulos氏によって、2023年4月にステータスの更新がブログで報告されました。

彼によれば、このプロジェクト表明から約半年間の間に、大きく分けて3つの対応を行ったことを報告しています。

  1. 最初の実装はPerformance Lab プラグインに含めリリース
  2. その後スタンドアロン プラグインとしてリリース
  3. ただ、そこには問題があったとして「より将来性のあるよう、SQL Lexer を使用して完全に書き直す」対応を実施

このSQL Lexerに関する説明は以下の通りです。

SQL Lexer はPHPMyAdmin/SQL-Parserプロジェクト ( GPL 2.0 でライセンス供与) の一部で、WordPress に適合し、効率的な形でMySQL から SQLite への変換エンジンを実装しています。これによってセキュリティと互換性が向上します。

そうした開発を進めた結果、「安定し、WordPressで使われる全ての クエリを適切に処理できるようになりました」とのこと。さらには「次のステップは、プラグインを使用するのではなく、代わりにWordPress コアへの実装をすること」とし、コアへの実装が目前に迫っていることも示唆しています。ここまでは非常に順調に見えます。

ベースとなっているのは「wp-sqlite-db」

今回、SQLiteをWordPressのコア実装に向けた開発をするにあたり、最初の実装としてPerformance Lab プラグインに含めたのは、「wp-sqlite-db」のコピーであることが明言されています。当サイト「99円でWordPress!」でも利用していますが、特に何の問題も無く動いており、非常に安定しています。MySQL版と全く遜色有りません。

コミュニティでの期待の声や一部の批判

そのブログ内のコメント欄では、MySQLからSQLite化を具体的にする方法などの質問や、実際に試したり、さらにはサーバーの提供を申し出るコメント等もあり、改めてWordPressのコミュニティの強さを感じられます。

一方で、時期尚早ではないかとの指摘も見受けられます。特に、テストに参加したインストール数が少ないことや、SQLiteの「宗教的な倫理規定」を問題視する声まであります。技術的な問題だけであれば、開発が進めば解決していくものだろうと思いますが、一方で倫理規定や、さらに宗教的な指摘となると、これは一筋縄ではいかない可能性も孕みます。

ただし、Ari Stathopoulos氏によれば「SQLite はパブリックドメインかつオープンソースだが、オープンコントリビューションではなく、SQLiteの倫理規定はSQLiteの開発にコントリビューターとして参加する人に適用されるものである」としています。また、他のコメントでも、(SQLiteの)作者の宗教的信念に同意できないからといって、テクノロジーを否定すべきではないといった、擁護するコメントもありました。

より多くのテストの必要性

現在のSQLiteのプラグインについて、テストがまだ少ないことについては、Ari Stathopoulos氏も認めており、プラグインの互換性等のためには、よりテストを行う必要があるとしています。

ただ、現状のプラグインによるテストですと、最初にMySQLで動いているWordPressの上でSQLiteプラグインを入れなければなりませんので、多少そうした部分が障壁となっているかもしれません。また、データベースは文字通りデータの根幹を担うものであり、他の機能と違い慎重さが求めらえるのもまた然りですので、現在メインで利用している環境をすぐに移してテストといったことも難しいかもしれません。

終わりに

当サイト「99円でWordPress!」で紹介している方法、そして今まさにこうして動いているこの「99円でWordPress!」は、プラグインではなく、前述の通り、本プロジェクトのベースとなっている実装「wp-sqlite-db」によるものです。ほぼ同じ機能を手軽に先行して使うことができます。もちろん、最初からMySQLが動いている必要もありません。

ぜひ参考になれば幸いです。


投稿日

カテゴリー:

投稿者:

タグ: