Page :: FSWiki / Plugins / dbi

DBI対応プラグイン&移行ツール

〜βテスト中〜

当ページで提供しているリソースのライセンスは GPL v2 とさせていただきます。(2016/10/12)

内容

FreeStyleWiki の DefaultStorage をデータベースを利用したものに変更する為のプラグインと、DB作成の為のツールです。

DBを利用することによりページ数の増加に伴うパフォーマンスの低下を最小限に抑えることが出来るかもしれません。

現在のところ、DBD::SQLite - 1.09, 1.11 のバージョンにてテストしています。

localhost
  • WinXP
  • ActivePerl v5.8.4
  • DBI v1.50
  • DBD::SQLite v1.11+patch, v1.09
kgsoft.jf.land.to
  • FreeBSD
  • Perl v5.8.7
  • DBI v1.48
  • DBD::SQLite v1.09


データベース名:wiki.db
どこまで出来るかわかりませんが、以下部分を DB 移行対象としていきたいと思います。
  • backup/*.wiki
  • data/*.wiki
  • config/modtime.dat
  • config/showlevel.log
  • log/freeze.log
  • log/access.log
  • log/attach.log - 未定

進捗状況

+ 過去の進捗状況

2006/05/07
StandardDatabaseStorage が後、get_freeze_list, is_freeze を残すのみ。ロック処理は別途考えよう・・・。ローカル環境では apache.exe が1つなのでロック不要で、既に稼働中(未実装部はDefaultStorage の方の機能を使っているので問題ない)。ページ数が100ちょっとだから、体感的には変わりない模様。
2006/05/07 - 17:00
StandardDatabaseStorage α版(VERSION - 0.02) の公開

データベースへの移行ツール

  1. wiki.cgi と同じディレクトリに保存し、実行権限を与えてください。
  2. ブラウザーより wikidb.cgi のURLへアクセスしてください。
  3. ログイン画面が表示されますので、導入しているFreeStyleWikiの管理者権限でログインしてください。
  4. ログイン後、setup.dat の設定情報と、利用されるDBI,DBDのバージョン情報が表示されます。
    • このページがエラーとなる場合や、バージョン情報が表示されない場合は、利用できない可能性が高いです。
  5. WikiFarm 名を指定して「データベース作成」ボタンをクリックすれば、既存のWikiページ情報を利用して、設定した場所にデータベースファイルが作成されます。

DBI対応データベース・ストレージ

  1. 移行ツールを使用し、各DB(Farm含む)を作成する
  2. 上記添付ファイルを plugin/dbi に保存する
  3. setup.dat の storage を変更する
storage = plugin::dbi::StandardDatabaseStorage

以上。

まだα版です。ロック等の処理も行っていないので、同時アクセスや同時更新などのテストも行っていません。ご利用の際はテスト環境等で行ってください。

バグ・改善案等ございましたら、コメントください。

データベース利用時の各種拡張モジュール

ここで公開するモジュールは、データベース・ストレージ利用時の拡張機能です。既存のプラグイン当のパフォーマンスアップの為にDBへのアクセスを行う為の修正などが含まれています。導入先は plugin/dbi/extension となります。

検索機能のパフォーマンス向上 - SearchHandler.pm(81) - 2006/05/09-09:41:41
該当するファイルを「SELECT - LIKE 検索語」等で絞り込む修正を行っています。 また、検索結果の並べ替え機能も追加しました。[名前順、更新日順、更新日順(新着順)]

依存関係

本プラグインでは以下のモジュール内の関数をオーバーライドしています。

  • プラグイン名::関数名

これらの関数を別のパッチ等で変更を加えている方は、本プラグイン導入後に既存の変更箇所が無効になってしまいますので、本プラグインへパッチ等の変更箇所を適用する必要があります。

データベース利用の為の設定

setup.dat

利用するストレージクラスの設定

既存の設定項目を書き換えるか、コメントアウトして追加します。注意点として、移行ツール使用時は Wiki::DefaultStorage を有効にして置いてください。移行ツールでは、Wiki::DefaultStorage が使用されます。

# ストレージのクラス名
#storage = Wiki::DefaultStorage
storage = plugin::dbi::StandardDatabaseStorage

データベース接続の為の設定

# データベース接続情報
db_driver = SQLite
db_dir  = ./db
db_name = wiki.db
#db_user = 
#db_pass = 

変更履歴

+ 過去の更新履歴

2006/05/07
  • wikidb.cgi
    • バグ修正
    • Wiki::DefaultStorage を必ず使用するように変更
  • plugin::dbi::StandardDatabaseStorage
    • α版(VERSION - 0.02)公開
Comment(8)
  • さっそくダウンロードさせていただきました。まずはご挨拶まで m(_ _)m - 近江屋 (2006/05/02-10:59:04)
  • おっ、近江屋さんどうもです。当モジュールの作成はこれからなので、しばらくはベータ版が続くと思いますがご協力していただけるとありがたいです。もうちょっとしたら StandardDatabaseStorage のα版(とりあえず動く程度のもの)公開が出来ると思います。 - KG (2006/05/02-23:41:08)
  • ご無沙汰しております。ローカル環境で試用してみたいと思い、ダウンロードさせていただきました。 - A_M (2006/06/14-19:57:01)
  • ありがとうございます。多くの方に試していただきたいのでバグ出し、改善等大歓迎ですのでよろしくお願いします。・・・と言いつつこのプラグインを1ヶ月以上放置してしまってましたね。さて、再開再開。。。 - KG (2006/06/15-00:37:11)
  • fswikiのDB化に興味を持ちまして、こちらのプラグインを試させていただきました。3.6.2ではそのままでは上手く動作しないようです。 - 名無しさん (2008/01/16-04:06:31)
  • FreeStyleWikiをHerokuに載せてデータを永続化しようとしてます。これのライセンスってたぶんMITとかですか?作ってるもの→https://freestylewiki.xyz/fswiki/wiki.cgi?page=Heroku%E5%8C%96%E8%A8%88%E7%94%BB - それがし某 (2016/10/12-11:17:02)
  • コメントありがとうございます。これ作ってからもう10年も経っているんですね(笑)。ライセンスですか?特に考えてはいませんでしたが、他のプラグイン等でもGPLv2としていますので、こちらもそうしておきます。なお、他の方のコメントにもありますが、最新バージョンではそのままでは動作しません。 fswiki 3.6.1 の時に作成して物ですので。今となっては参考程度というところです。ただし、劇的に早くはなりますw - KG (2016/10/12-13:41:44)
  • ありがたいです。若干の修正を経て動くようになりました。 - それがし某 (2016/10/13-22:20:55)
お名前: コメント:

このページのTrackback(0)

最終更新時間:2016/10/12-13:44:15