DatastoreのDump/Restoreツールが既存プロジェクトにバインドできるようになりました。
以前こちらで書かせてもらったgobo-toolsですが、
http://d.hatena.ne.jp/knj77/20101007/1286462560
バグ修正と同時に、既存アプリにもバインドできるよう修正を施しましたので紹介させてもらいます。
Slim3には依存していませんので(未確認ですが)ほとんどのアプリで動作できると思います。
gobo-toolsのインストール方法
1.zipのダウンロード
以下のページから最新のzipをダウンロードしてください。
http://code.google.com/p/gobo-tools/downloads/list
ダウンロードしたzipを展開すると以下のものが含まれています。
- gobo-tools.20101021.jar
- gdata-media-1.0.jar
- gdata-docs-3.0.jar
- google-collect-1.0-rc1.jar
- gdata-spreadsheet-meta-3.0.jar
- gdata-spreadsheet-3.0.jar
- gdata-core-1.0.jar
- gdata-client-meta-1.0.jar
- gdata-client-1.0.jar
- gobo(フォルダ)
2. jarのコピー
1で展開した中にある全てのjarをwar/WEB-INF/lib直下にコピーしてください。
3. JSPのコピー
1で展開した中にあるgoboフォルダをwar直下にコピーしてください。
4. web.xmlの編集
web.xmlに以下の内容を記述してください。
<servlet> <servlet-name>GoboServlet</servlet-name> <servlet-class>gobo.GoboServlet</servlet-class> </servlet>
<servlet-mapping> <servlet-name>GoboServlet</servlet-name> <url-pattern>*.gobo</url-pattern> </servlet-mapping>
<security-constraint> <web-resource-collection> <url-pattern>*.gobo</url-pattern> </web-resource-collection> <auth-constraint> <role-name>admin</role-name> </auth-constraint> </security-constraint>
5.専用のURLにアクセス
http(s)://your-app-id.appspot.com/index.gobo 拡張子に注意
にアクセスすると、gobo-toolsにアクセスできます。
以上です。
注意事項
仕様として注意してもらいたいポイントを列挙します。
- Dump/Restoreでは最初にAuthSubの認証があります。(Google Spreadsheetの読み書きを行うため)
- 内部的に _GOBO_CONTROL_ というKind名でDatastoreに書き込みを行います。(まず無いと思いますが)プロジェクトで左記のKind名をご利用の場合はご注意ください。また、各動作終了後、_GOBO_CONTROL_ というKindは自動的に削除されます。
- Dumpはスナップショットではありません。TaskQueueで少しづつ取得しながらspreadsheetに書き込みますので、最初の行と最後の行では時間的に差があります。
- Blob、ShortBlob、Textは対応していません。(Restore時にnullで上書きしないようにはなっています。)
- Production環境でのDump/Dropはスキーマ情報にDatastore Statisticsを参照しますのでStatistics更新前は正しく動作しません。
- Dumpした結果、全てのデータはダブルクオートで囲まれています。これはSpreadsheetの自動変換を避けるためで、Restore時にはあってもなくても構いません。
その他
バグを見つけた方は @knj77 までご連絡頂くか、
http://code.google.com/p/gobo-tools/issues/list にご登録頂ければと思います(日本語で構いません)
感想、ご要望などもお聞かせ頂けると嬉しいです。
なお、このツールをご利用頂いた結果被った損害については一切の責任を負いかねますのでご了承ください。
特にProduction環境で用いる場合は、事前にステージング用の別アプリIDなどで十分な検証を行う事をお勧めします。