The EDB Blog
December 7, 2014
しばしば、PostgreSQLどのように関わったのか、そしてpgAdminプロジェクトがどのように始まったのかという質問を受けます。ビールでも飲みながら話をできれば嬉しく思うのと同じくらい、何通もの電子メールでそうするのは面倒です。そのため、未来の手根管症候群から私の指を救う無駄な試みとして、ここに物語があります...
 
I first discovered PostgreSQL in 1997. I was working at a social housing provider in the UK where, at the time, we were running Informix SE and Pick databases. We wanted to start building in-house web applications for managing additional areas of the business. There were no useful interfaces for Pick that could be used with any of the web technologies available to us at the time and the licensing model for Informix and its ODBC driver was prohibitively expensive, so I started looking for alternatives. 
 
mSQLとMySQLの調査に時間を費やした後、私は最終的にPostgreSQLを見つけました。これは、ODBCとC言語インタフェースを備えたSQLベースのDBMS、リベラルなライセンス、豊富な機能セット、バグレポートや機能リクエストに対応した豊富なコミュニティをサポートし、私たちが必要なものをすべて備えていました。私と同僚は、PostgreSQLを使って数年の間に数多くのアプリケーションを開発し、データベースは私たちのビジネスの重要な要素となりました。私たちは、Web用のPHPとデスクトップ用のVisual Basicで書かれたアプリケーションを用意しました。
 
However, it was early on in our journey with Postgres that, as a Windows shop (on the desktop at least), we found ourselves wishing for a good graphical management tool for the database. At the time, the only option was pgAccess, which was a basic tool written in TCL/TK that was not easy to get to work on Windows. So I decided to write my own in Visual Basic. The first version was never released to the public and was modeled on the pgAccess design. Called pgManager, it was quickly abandoned as we found the UI to be restrictive and, well, not overly usable. The second incarnation was pgAdmin, which was redesigned from the ground up. It was released as an Open Source project and quickly became a popular tool amongst Postgres users (which was extremely gratifying as it was my first Open Source project). 
 
数年後、私たちは再び、アプリケーションが設計された方法のために問題を抱えていると感じました。スコットランドの親戚に私の家族が数週間滞在したこともあり、私はその間自宅に閉じこもり、もっと使いやすいユーザーインターフェースを実装した、より構造化され、保守の容易な設計を使って、pgAdmin IIを書きました。私はそのコードの設計と簡潔さを特に誇りに思っていましたが、2002年には、やはりそれを再びやり直す必要性が生じました。今回は、私たちの前に立ちふさがっていたのはアプリケーション設計ではなく、技術の選択でした。Visual Basicは国際化やローカライズをうまく扱うことができず、またWINEを使わずにWindows以外のプラットフォームでも動作せず、そのため安定性を著しく欠いていました。最終的に、WxWidgetsフレームワークでC++を使用して、すべてを最初から書き直すという厳しい決断を下しました。pgAdmin IIIはpgAdmin IIとよく似ていましたが、それは、とりわけ日本のLinuxを使用している友人が経験していたすべての問題を解決しました。現行のものは3つ目のバージョンで、pgAdminはPostgresを管理するための最も一般的なopen sourceのGUIツールとして残されています。
 
私は住宅供給業者での仕事を続け、2007年までPostgresを利用しました。それから私はPostgresの仕事にフルに専念できるようにEnterpriseDB社に移りました。EDBでは、私自身のツールを扱うだけでなく、PostgreSQLコミュニティにも引き続きさまざまな形で貢献しています。私は、コミュニティの仕事のためにEDBの経営陣の全面的なサポートを得て、コアチーム、PostgreSQL Europeボード、さらにはpgAdminで、コミュニティでの役割を果たすために必要なことに、自由に取り組むことができます。私がEDBで担当している製品の1つはPostgres Enterprise Managerです。これはpgAdminに基づくファット・クライアント・インターフェースを備えています。これにより、EDBのPEMチームのメンバーが定期的にコードを提供し、バグを修正し、他の場所からpatchをレビューすることにより、pgAdminのメンテナンスにより多くの労力を注ぐことができました。Ashesh Vashi氏は、その努力が評価され、コミッターにまでなっています。
 
過去12年の間に苦労したにもかかわらず、pgAdminの開発者は、現在のコードには限られた期間しか有効性がないという結論に達しました。最近では、C++の開発者を見つけるのが非常に難しいこと以外にも、コード内の問題や設計の選択、根本的なwxWidgetsフレームワーク、GTKのいくつかのバージョン(ユーザーのLinuxディストリビューションからGTKを継承しているため、通常は制御できません)にまでさかのぼることができる、修正が困難な多数のバグに直面してきました。さらに最近では、世界はWebベースのモデルに移行しています。cloudの導入は、ホスティングプロバイダーを通じて提供される単純なインスタンスと同様、より広く使用されています。その場合、ユーザーはノートパソコンやタブレットをピックアップできるようになり、ブラウザを開いたり、メールを読み書きしたり、スプレッドシートを作成したり、データベースを作成したりなどといった作業を、ソフトウェアをインストールしなくても行うことができます!
 
その結果、今ではpgAdmin 4を設計し始めています。計画では、ユーザーがWebサーバーに導入またはデスクトップから実行できるPythonベースの単一のpgAdminを構築する予定です。現在の実装(ダイアルアップ接続での使用を想定して設計されています)のようなスキーマの詳細をクエリーしてキャッシュするのではなく、「ライブクエリー」アプリケーションのために設計されており、さらに、将来的には現在よりもさらに多くのタスクに焦点を当て(したがって、より有用になります)、クエリーツールやタブ付きクエリーウィンドウでの直接的なデータ編集など、現在のコードでは難しい必要性の高い機能を実装するようになります。新しいコードはまた、新しいオブジェクトタイプや機能を簡単に「投入」し、実行時に自動発見することをサポートし、根本から拡張することができます。
 
それは現在のところ概念的な段階にあるため、ダウンロードすることはできません。しかし、これから先の12ヶ月間にわたり、作業のギアを上げていくつもりですので、どうぞ今後の動向にご期待ください。
 
dave.page's picture

Dave has been actively involved in the PostgreSQL Project since 1998, as the lead developer of pgAdmin, maintainer of the PostgreSQL installers and one of the projects resident Windows hackers. He also serves on the project's web and sysadmin teams and is a member of the PostgreSQL Core Team....