Fork me on GitHub

Storagepostgresql+plugin

  • Jun 02, 2006

categoryプラグインは存在しません。

概要

FSWikiでストレージにPostgreSQLを使うプラグインです。これを導入することで以下のメリットが期待できます。

  • ページ数が増えても、一定のレスポンス速度を保てる(はず)
  • 過去の編集履歴が全て保存されるため、全てのバージョンとの差分表示が可能。
  • Farmを含めたページのバックアップが、RDBのdump一発で取れる(添付ファイルを除く)

まだ、ページ一覧、更新履歴などは正しく動作しません。くれぐれも、正式運用には使わないでください。

対応バージョン

FSWikiの 3.5.1のみで、動作確認しています。

少なくとも3.5.5以降ではAPIが異なるため動作しません。ご注意ください。

ダウンロード

  • 2003.9.24β版:refプラグインは存在しません。
    • ページの削除処理に対応。
    • ページ管理の際、参照権限が正しく表示されない障害を修正。
  • 2003.9.22α版:refプラグインは存在しません。
    • ファイルストアからの移行スクリプトを追加。
    • ページのバックアップにトランザクションを利用するように変更。
  • 2003.9.21α版:refプラグインは存在しません。
  • インストール

    PostgreSQLの他に、Perl/Pg - Perl extension for PostgreSQLが必須です。インストールしていない場合は、まずインストールしてください。

    ZIPを展開して、

    createdb -D [DBの格納先] -E EUC_JP fswiki
    

    とDBを作成。

    psql -f create-db.sql fswiki
    

    として、テーブルを作成。

    FSWikiから、storage_postgres プラグインを有効にする。

    DBの名前、接続形態が違う場合は、

    StoragePostgreSQL.pm
    

    にある接続オプションを編集してください。

    ファイルストレージからの移行

    ファイルストレージのページをDBに移行するには、file2db.pl の接続オプションを正しく編集して、

    perl file2db.pl
    

    と実行すると移行できます。一応Farmも含めて移行されます。

    問題点

    mod_perl使用時にconnectionが切断されないまま残る

    これは、

    undef $wiki->\{storage\};
    

    という記述を、

    • wiki.cgi の最後
    • Wiki.pm の redirect の exit の前
    • AttachHandler.pm の do_action の exit の前
    • RSSMaker10.pm の exit の前

    に追加すると大丈夫のようです。

    一覧、更新履歴が正しく並ばない

    data/
    

    内のファイルを削除すると順序は正しくなります。ただし、Farmのフォルダは削除しないでください。

    更新履歴は、RecentCache.pm の update_cache で $modtime を取得する部分を

    my $modtime = $wiki->get_last_modified($_);
    

    と変更すると、正しく表示されるようになります。

    コメントが反映されない

    PostgreSQLに入れたときに、本文の改行が\r\nになってしまって、コメントプラグインの正規表現に引っかからなくなってしまうみたいです。

    とりあえず、CommentHandler.pm 内の二箇所ある

    if(/^\{\{comment\s*.*\}\}$/ && $flag==0)\{
    

    という行を

    if(/^\{\{comment\s*.*\}\}/ && $flag==0)\{
    

    と変更すると動きます。($を取る)

    コメント

    • 以前PostgreSQLのインストに失敗したものです。どのようなメリットがあるのか説明があると嬉しいです。 - 名無しさん (2003年10月02日 12時56分26秒)
    • メリットを書いてみました。やはり大きいのは過去バージョンが残るところですかね。 - Yoshimov (2003年10月02日 17時16分21秒)
    • なんかめっちゃすごそうですね、設置サイトでひとつ上のものです、いずれはプラグインにお世話になりたいです。その前にインストしないと・・・ - 名無しさん (2003年10月07日 11時34分13秒)

    commentプラグインは存在しません。