SSブログ

Zope(Plone) から Firebird にアクセスする [Firebird]

これは、 Firebird Advent Calendar 2014 の7日目の記事です
http://qiita.com/advent-calendar/2014/firebird

【はじめに】
Python で書かれた Zope という Web Application Server があります。
また、Zope で構築された CMS の Plone があります。
Plone について紹介された最近のスライドを見ると雰囲気がわかるかもしれません。
http://www.slideshare.net/takanory/plone-features-and-trends

Zope には RDBMS と接続するための仕組み Zope Database Adapter があります。
今回、 Zope (Plone) と Firebird の Zope Database Adapter の FirebirdDA を
インストールしてみたいと思います。

【インストールと動作確認】
現状、 Zope 単体でインストールするよりも、いろいろ同梱された Plone の Unified Installer を使ってインストールするのが簡単なので、Plone の Unified Installer を使ってインストールします。

基本的には http://nakagami.blog.so-net.ne.jp/2013-08-21 の手順に従いました。
Plone のバージョンが 4.3.4 に、 Ubuntu が 14.04 に微妙に上がりましたが、基本は同じです。
以下が、実行したコマンドと設定ファイルの修正記録

$ sudo apt-get install libxml2-dev libxslt1-dev

$ wget https://launchpad.net/plone/4.3/4.3.4/+download/Plone-4.3.4-r1-UnifiedInstaller.tgz
$ tar zxvf Plone-4.3.4-r1-UnifiedInstaller.tgz
$ cd Plone-4.3.4-UnifiedInstaller
$ ./install.sh standalone --without-ssl
$ cd ~/Plone/zinstance
$ ./bin/plonectl start

インストールの最後にでるアカウントとパスワードでログインできる
見落としたら ~/Plone/zinstance/adminPassword.txt にあるのでそれを参照します

次に Firebird の Database Adapter FirebirdDA をインストールします。
https://github.com/nakagami/Products.FirebirdDA
https://pypi.python.org/pypi/Products.FirebirdDA/

buildout.cfg の eggs の項に1行を追加して

eggs =
...
Products.FirebirdDA

以下を実行。

$ ./bin/buildout
$ ./bin/plonectl restart

ここまでで Database Adapter のインストールができました
次に、Database Adapter のオブジェクトを追加します

「ZMI(Zope管理インタフェース)」のリンクをクリック
select type to add に「 Firebird database connection」を選択して Add
screen0.png
Id、Title、 Data Source を入力して「Add」をクリック
screen1.png
できたオブジェクトをクリックして「Test」タブをクリック
screen2.png
テキスト欄に SQL文を入れて「Submit Query」で結果が表示される
screen3.png
ここまでが、インストールと接続確認になります。

【アプリケーション構築】
この FirebirdDA を使って Firebird に接続して、参照・更新するような
アプリケーションの形にするには、ZSQLMethod を書いて、
テンプレートから呼び出します。

続きは、 以下を参照してください。

The Zope2 Book 19. Relational Database Connectivity
http://docs.zope.org/zope2/zope2book/RelationalDatabases.html
ZSQL method User's Guide
http://www.zms-publishing.com/content/e3493/e1038/e3527/e3529/ZSQL_Methods_Users_Guide_ger.pdf

【最後に】
過去のブログエントリの日付を見ると、自分は1年3ヶ月振りに Plone をインストールしたようです。
最近、メールで「FirebirdDA が動かないんだけど」という問い合わせがあり、
そのために上記手順を実施したので、せっかくなので記録として残しました。
ちなみに、Zope のバージョンが上がるのにともなって、FirebirdDA が
動かなくなっていたようです。FirebirdDA を修正して 0.6.4 をリリースしました。

いきなり、ニッチな話になってすみません。
明日は、(もう少し一般的な) Python から Firebird を使うことについて書きたいと思います。

コメント(0)  トラックバック(0) 
共通テーマ:日記・雑感

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

Facebook コメント

トラックバック 0