Piggydbマニュアル
Piggydbのインストール
スタンドアロン・パッケージ
PiggydbはWebアプリケーションですが、スタンドアロンアプリケーションのような感覚で利用できる「スタンドアロン・パッケージ」を提供しています。パッケージファイルをダウンロードして適当な場所に解凍し、実行ファイルをダブルクリックすればPiggydbサーバーが起動してタスクトレイに常駐します。
全ての環境でテストをしたわけではないので断言はできませんが
(Windows XPとMac OS Xで動作確認済み)、JavaランタイムとGUIのシステムトレイがある環境であれば、このパッケージを利用できる思います。
以下に手順を示します。
1) Javaがインストールされていない場合はこちらでダウンロードしてインストールしておきます(スタンドアロン・パッケージを動作させるためには Java 6 (1.6) 以上が必要です)。
2) Piggydbダウンロードからスタンドアロン・パッケージをダウンロードします。
3) Zipファイルを適当な場所に解凍します。
4) piggydb.exeファイルをダブルクリックすると以下のようなスプラッシュスクリーンが表示されてサーバーの起動が始まります。
Windows以外のOSをご利用の場合は、piggydb-standalone.jar をダブルクリックするとサーバーの起動が始まります。起動しない場合は、コマンドラインから「java -jar piggydb-standalone.jar」を実行してみて下さい。
5) サーバーの準備が完了すると自動的にブラウザが起動されてログインページが表示されます(表示されない場合は、ブラウザを起動して http://localhost:8080/ にアクセスして下さい)。
6) Ownerアカウント owner/owner でログインします。
ログイン後は忘れずにパスワードを変更するようにして下さい(メニュー「システム/パスワード変更」から変更できます)。
Piggydbサーバーが起動しているとき、タスクトレイにPiggydbのアイコンが表示されます。
このアイコンを右クリックするとメニューが表示されるようになっています。
サーバーを終了させたい場合は、メニューから「終了」をクリックします。
All-in-Oneパッケージ
「All-in-Oneパッケージ」にはPiggydbプログラム本体の他にWebサーバーも同梱されていますので、ダウンロードしてすぐに使い始められます(GUI環境の場合はスタンドアロン・パッケージのご利用をオススメします)。
以下に手順を示します。
2) Piggydbダウンロード からAll-in-Oneパッケージをダウンロードします。
3) Zipファイルを適当な場所に解凍します。
4) run.batファイルをダブルクリックするとPiggydbが起動します(Linux, Mac OS Xなどの場合は、run.shを実行)。
5) ブラウザを起動して http://localhost:8080/ にアクセスするとログイン画面が表示されます。
6) Ownerアカウント owner/owner でログインします。
ログイン後は忘れずにパスワードを変更するようにして下さい(メニュー「システム/パスワード変更」から変更できます)。
以上で完了です!
7) サーバーを停止する場合は、Ctrl+C(Ctrlを押しながらCキー)でDOSウィンドウを閉じます。
起動中に表示されるDOSウィンドウが邪魔に感じられる場合は、Windowsサービスとしてインストールする方法もあります → #14
PiggydbをWindowsサービスとしてインストールする
複数のユーザーが共有できるようなサーバーを立ち上げる一つの方法として、PiggydbをWindowsサービスとしてインストールするという手段があります。
1) Piggydbのwarパッケージをダウンロードする
以下のサイトからwarパッケージ(拡張子が「*.war」となっているファイル: piggydb-<version>.war)の最新版をダウンロードします。
2) TomcatのWindows版をインストールする
以下のサイトにて、手順がとても分かりやすく紹介されています。
- Javaの道:Tomcat(1.インストール(Windows環境))
上記のサイトではTomcatを手動で起動・停止する方法が紹介されていますが、起動・停止を行う画面で「Startup type」を「Automatic」に設定すれば、以後Tomcatは自動的に(Windowsの起動・停止と共に)起動・停止されるようになります。
3) Piggydbをインストールする
まずTomcatが起動している場合は停止しておきます。そしてTomcatをインストールしたフォルダの中に webapps というフォルダがありますので、そこにwarファイル(piggydb-xxx.war)をコピーします。コピーが終わったらTomcatを起動してインストールは完了です。
4) Piggydbのトップページにアクセスする
トップページのURLはTomcatの設定やwarファイルの名前によって変化しますが、デフォルトの設定でwarファイルの名前が「piggydb-xxx.war」である場合、URLは以下のようになります。
http://localhost:8080/piggydb-xxx/
"piggydb-xxx"というURLを変更したい場合は、warファイルの名前を変更します。
Piggydbのアップグレード
既存のPiggydbを新しいバージョンにアップグレードするのはとても簡単です。以下にパッケージごとの手順を示します。
(※) 基本的にデータベースはプログラムファイルとは別の場所に保存されていますので(#167)、新しいバージョンに入れ替えてもデータはそのまま引き継がれますが、念のため作業前にデータをエクスポート(#48)しておくことをお勧めします。
スタンドアロン・パッケージ / All-in-Oneパッケージのアップグレード方法
基本の設定を変更していない場合、特別な作業は必要ありません。古いバージョンのサーバーを停止してから、新しいバージョンのサーバーを起動するだけです。既存のデータはそのまま引き継がれます。
- 旧バージョンのPiggydbが起動している場合は停止する
- 新バージョンのパッケージを好きな場所に解凍する
- データベースの場所を変更している場合は新バージョンの設定を変更する
- 新バージョンのPiggydbを起動
- 通常、データはプログラムフォルダと別の場所に保存されていますので、アップグレード後に、古いプログラムフォルダは削除してかまいません
- アップグレードする際に新しいアプリケーションを古いアプリケーションに上書きする形でインストールするのはトラブルの元になりますのでお勧めできません。他の場所に配置するか、古いアプリケーションを削除してから配置するようにして下さい。
warファイルのアップグレード方法
Tomcatを利用している場合、webappsフォルダの下に古いバージョンのwarファイルと、そのwarファイルが展開されてできたフォルダ(piggydb.warの場合、piggydbというフォルダ)があると思いますが、その両方を削除してから、新しいwarファイルを配置します。warファイルを入れ替えるだけです。(minakajiさんのご指摘を受けて修正しました)。
- Piggydbが配置されているWebサーバー(Tomcatなど)を停止する
- warファイルを入れ替える
- Webサーバーを起動する
データベースファイルの配置場所
データベースファイルは標準の設定で以下の場所に配置されます。
- Windowsの場合
- C:\Documents and Settings\<ユーザー名>\piggydb
- Linuxの場合
- ~/piggydb/
All-in-Oneパッケージを利用している場合、デフォルトのデータベース名は「piggydb」になります。設定を変えていなければ、上記の場所に以下のようなファイルが生成されているのを確認できると思います。
piggydb.2.log.db piggydb.data.db piggydb.index.db piggydb.trace.db
warファイルを利用している場合、標準の設定において、データベース名はwarファイルの名前から決定されます。例えば、myknowledge.war という名前のwarファイルを配置すれば、データベースの名前は「myknowledge」となります(ROOT.warの場合は例外で、データベースの名前は、All-in-Oneパッケージと同じく、「piggydb」になります)。
この仕組みの導入によって、一つのWebサーバーに複数のPiggydbを配置できるようになりました。
ただしこの仕組みは、Java Servletのバージョンが 2.5 以上 (Tomcat 6.x) である場合にのみ機能します。2.5 以上を利用できない場合は、自動的に全てのデータベース名のデフォルト値は「piggydb」となります。
データベースファイルの配置場所を変更する
- piggydb.database.prefix
- データベースファイルを配置するフォルダ(ディレクトリ)
- piggydb.database.name
- データベース名(データベースのファイル名に利用されます)
- デフォルト値
- piggydb.database.prefix: ~/piggydb
- piggydb.database.name: piggydb
- Windowsの例
- データベースフォルダを C:\data データベースの名前を "piggydb" とした場合
- piggydb.database.prefix: file:C:/data
- piggydb.database.name: piggydb
- フォルダへのパスの書き方は、file: で始まるURL形式にする必要があります。通常のWindowsのものとは異なることに注意して下さい。
- データベースフォルダを C:\data データベースの名前を "piggydb" とした場合
- Unixの例
- データベースファイルの作成場所を /data データベースの名前を "piggydb" とした場合
- piggydb.database.prefix: file:/data
- piggydb.database.name: piggydb
- ディレクトリへのパスの書き方は、file: で始まるURL形式にする必要があります。
- データベースファイルの作成場所を /data データベースの名前を "piggydb" とした場合
コンフィグレーション(システム設定)
Piggydbにはシステムの動作をカスタマイズするためのコンフィグレーション機能が提供されています。パッケージごとに設定方法が若干異なります(いずれの場合も設定項目の名前は共通です)。
- スタンドアロン・パッケージ
- パッケージ内の application.properties を編集してサーバーを再起動します。
- All-in-Oneパッケージ
- run.bat あるいは run.sh を編集してサーバーを再起動します。
- Tomcatの場合
- CATALINA_OPTS環境変数を利用して設定
- TomcatをWindowsサービスとしてインストールしている場合 → #23
データベースファイルの配置場所を変更する
- piggydb.database.prefix
- データベースファイルを配置するフォルダ(ディレクトリ)
- piggydb.database.name
- データベース名(データベースのファイル名に利用されます)
- デフォルト値
- piggydb.database.prefix: ~/piggydb
- piggydb.database.name: piggydb
- Windowsの例
- データベースフォルダを C:\data データベースの名前を "piggydb" とした場合
- piggydb.database.prefix: file:C:/data
- piggydb.database.name: piggydb
- フォルダへのパスの書き方は、file: で始まるURL形式にする必要があります。通常のWindowsのものとは異なることに注意して下さい。
- データベースフォルダを C:\data データベースの名前を "piggydb" とした場合
- Unixの例
- データベースファイルの作成場所を /data データベースの名前を "piggydb" とした場合
- piggydb.database.prefix: file:/data
- piggydb.database.name: piggydb
- ディレクトリへのパスの書き方は、file: で始まるURL形式にする必要があります。
- データベースファイルの作成場所を /data データベースの名前を "piggydb" とした場合
匿名アクセス機能の設定方法
- 設定項目: piggydb.enableAnonymous (true: 有効, false: 無効)
Piggydbの機能一覧
情報の単位「フラグメント」
以下のようにフラグメントはブログに記事を追加していく要領で作成できます。
フラグメント同士を結びつける
フラグメントをタグで分類する
出来上がった知識を眺める「ドキュメント・ビュー」
マルチユーザーでコラボレーション!
初期状態のPiggydbに用意されているユーザーはownerユーザーのみですが、複数人でデータベースを共有したい場合は、簡単にユーザーを追加することができます。
全文検索
ページ上部、メニューバーの右側に、キーワード検索のためのフォームが配置されています。キーワードを入力して検索ボタンをクリックすると、データベース内のフラグメント、タグを検索して、その結果を表示します。
キーワードは、スペースで区切ることにより複数指定することができます。複数のキーワードが指定された場合、それら全てのキーワードを含むフラグメントを検索します(AND検索)。
特殊タグ
通常、タグはフラグメントを分類するために利用しますが、Piggydbならではのユニークな機能として「特殊タグ」があります。特殊タグをフラグメントに付けることで、フラグメントに様々な機能を持たせることができるようになります。
特殊タグ: #user
特殊タグ: #trash
特殊タグ: #bookmark
特殊タグ: #home
Piggydbを複数人のユーザーで利用している場合は、ホームフラグメントをユーザーみんなの共有情報として利用できます。
特殊タグ: #public
#publicタグ、あるいはこのタグの下位に所属するタグが付いているフラグメントは外部に公開されます。つまりログインしていなくてもその内容を見ることができるようになります。ただし、公開されるのはフラグメントのドキュメント・ビューのみです。通常の編集画面は公開されません。
公開されたフラグメントへアクセスするためのURLは、通常のドキュメント・ビューのものと同様になります。以下のようなURLです。
http://<host-name>:<port>/<war-name>/document-view.htm?id=6
PiggydbをCMS(Content Management System)として使う
Piggydbには構築したデータベースを公開する機能が備わっています。実際にこのサイト(piggydb.jp)も、この公開機能を利用して運営しています。
作成したドキュメントを部分公開機能で発表する
匿名アクセス機能で情報を公開
基本的にPiggydbは、個人であれグループであれ、ログインユーザーのみに閉じて利用するプライベートなツールですが、この機能を有効にすると、ログインしていない匿名のユーザーにもデータベースの内容が公開されるようになります。
ただし匿名ユーザーはデータの編集を行うことはできません。あくまで閲覧のみです。データベースの中身を変更する場合は、匿名アクセス機能の有無に関わらず、ログインしていることが前提となります。
このサイト(piggydb.jp)自体が、匿名アクセス機能を利用しています。このように、作ったデータベースを完全に公開したい場合は、この機能を使うことで実現できます。
匿名アクセス機能は、部分公開機能(#35)とは異なり、全ての情報を公開することになります。
突然の電源断などでデータベースが壊れた場合
停電などが原因で突然の電源断が発生した後、以下のようなエラーが出て、Piggydbを利用できなくなることがあります。
a) java.lang.RuntimeException: Unexpected code path
b) java.lang.RuntimeException: double allocation in file
上記のようなエラーが出る場合、データベースファイルが壊れている可能性があります。
このような問題が発生した場合、単純にデータベースディレクトリの中のindexファイル (<データベース名>.index.db) を削除して再起動すると解決することがあります(特に a) のケース)。この方法で解決しない場合は、リカバリツールを使います。
データベースディレクトリについては、こちらを参照。
1) まずはPiggydbサーバーを停止しておきます。
2) Piggydbのパッケージの中から h2-<バージョン番号>.jar のような名前のファイルを探して(スタンドアロンパッケージの場合は、webapp/WEB-INF/lib の中にあります)、データベースディレクトリの中にコピーします。
3) そして、そのディレクトリの中で以下のコマンドを実行します。データベースの内容が、<データベース名>.data.sql というファイルに出力されます。
java -cp h2*.jar org.h2.tools.Recover
java.io.EOFException というエラーが出ることがありますが、<データベース名>.data.sqlというファイルが出来ていれば、とりあえず無視しても問題ないようです。
4) 出力されたファイル(<データベース名>.data.sql)を使って、データベースの復元を行いますが、そのまま実行するとエラーになってしまう箇所があるのでそれらを削除する必要があります。テキストエディタなどを利用し、キーワード「CJKFullText」で検索して、ヒットした行を全て削除します。
5) データベースをゼロから作り直すので、既存のデータベースファイル(*.dbファイル)を全て削除(あるいは他の場所に移動)しておきます。このとき、ファイルフラグメントのファイルが保存されている <データベース名>-files ディレクトリはそのままにしておきます。
6) 以下のコマンドでデータベースを作り直します(以下のコマンドはいずれも一行です)。エラーが無ければ、データベースが復元されているはずです。
java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:<データベースディレクトリ>/<データベース名> -user sa2 -script <データベース名>.data.sql -showResults
デフォルト設定の場合) java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:~/piggydb/piggydb -user sa2 -script piggydb.data.sql -showResults
エラーが発生した場合は、その箇所を、<データベース名>.data.sql から削除して、もう一度 5), 6) の手順をやり直してみて下さい。
7) Piggydbを起動して、問題なく利用できるか確認します。
8) さらに万全を期すために、このデータベースをPiggydbのメニューからエクスポートして、再度データベースを作り直します。エクスポート後、サーバーを停止して、データベースファイルをデータベースディレクトリごと全て削除し、サーバーを再起動します。つまり、データベースを初期状態にします。その後、エクスポートしたファイルを使って、データベースを復元します。
Piggydbでは、データを保存するために「H2 Database Engine」というデータベースエンジンを利用しています。以上の手順は、H2のサイトを参考にしました。