20090124shibuya Trac

1,816 views

Published on

Shibuya.trac発表スライド
Pluginを PostgresSQL対応する

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,816
On SlideShare
0
From Embeds
0
Number of Embeds
91
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20090124shibuya Trac

  1. 1. Plugin を PostgresSQL 対応する   http://weekbuild.sakura.ne.jp/trac/
  2. 2. 自己紹介 <ul><li>名前:広部 </li></ul><ul><li>キーボード:東プレ Realforce </li></ul><ul><li>マウス: Logicool V550 Nano </li></ul><ul><li>サイト: http://weekbuild.sakura.ne.jp/trac/ </li></ul><ul><li>twitter : hirobe </li></ul><ul><li>職業: SE-> 学生@名古屋 </li></ul><ul><li>やること: Trac のプラグイン作ったり </li></ul>
  3. 3. ある日のこと  
  4. 4. (画像はイメージです)
  5. 5. やってみたら簡単だった!! ( ´∀`)σ)Д`) 注意: あくまで開発環境の話ですb あと、Windows環境の話
  6. 6. あっと、言い忘れた PostgreSQL 8.3 以降 ( 最新は 8.3.5) は、 型チェックが厳密なので、 Trac0.11 以降しか動かないそうです (  ´_ ゝ ` )フーン
  7. 7. ナガレ <ul><li>PostgreSQL をインストール </li></ul><ul><li>DB を見る </li></ul><ul><li>Trac 側の準備 </li></ul><ul><li>実際にエラーになったところ </li></ul>
  8. 8. PostgreSQL をインストール <ul><li>PostgreSQL でググる ↓ </li></ul><ul><li>NPO 法人 日本 PostgreSQL ユーザ会 ↓ </li></ul><ul><li>メニュー:ダウンロード ↓ </li></ul><ul><li>PostgreSQL 8.3.5 Windows 版インストーラ ↓ </li></ul><ul><li>Zip を解凍してインストーラ起動 </li></ul>
  9. 9. PostgreSQL をインストール
  10. 10. PostgreSQL をインストール
  11. 11. PostgreSQL をインストール 読んでから
  12. 12. PostgreSQL をインストール
  13. 13. PostgreSQL をインストール
  14. 14. PostgreSQL をインストール
  15. 15. PostgreSQL をインストール
  16. 16. PostgreSQL をインストール
  17. 17. PostgreSQL をインストール
  18. 18. PostgreSQL をインストール
  19. 19. PostgreSQL をインストール
  20. 20. PostgreSQL をインストール
  21. 21. PostgreSQL をインストール お好きに
  22. 22. PostgreSQL をインストール <ul><li>インストールおわり </li></ul><ul><li>必要なのはパスワードを入力するくらい </li></ul><ul><li>あくまで開発環境の話です </li></ul><ul><ul><li>運用で使う場合は、もうちょっとまじめに </li></ul></ul><ul><ul><li>Trac のサーバと PostgreSQL のサーバを分ける場合は、インストール時に設定しておく </li></ul></ul>
  23. 23. DBを見る これが ヤバイ
  24. 24. DBを見る
  25. 25. DBを見る
  26. 26. DBを見る
  27. 27. DBを見る
  28. 28. DBを見る デフォルトで、 ・データベース: postgres ・スキーマ: public がいます
  29. 29. すげえ簡単ですね 以前コマンドでやったときは 結構苦労したのだが。。
  30. 30. Trac の準備 <ul><li>psycopg2 をダウンロード psycopg is a PostgreSQL database adapter for the Python ソースからインストールするには VisualC が必要なので、 バイナリを入手します。 </li></ul><ul><ul><li>win-psycopg でググる ↓ </li></ul></ul><ul><ul><li>はてなブックマーク - Stickpeople Project: win-psycopg ↓ </li></ul></ul><ul><ul><li>サイト: win-pycopg ↓ </li></ul></ul><ul><ul><li>Ver.2.0.8 の ReleaseBuild をダウンロード PostgreSQL8.3.4 版しかないけど、 8.3.5 で動いたよ </li></ul></ul>http://www.stickpeople.com/projects/python/win-psycopg/
  31. 31. Trac の準備 <ul><li>psycopg2をインストール </li></ul><ul><li>TracLightning(2.0.4) を使っている場合、 インストール時にエラーが出ました。 </li></ul><ul><li>対応策: </li></ul><ul><li>python2.5.2 をインストールする </li></ul><ul><li>psycopg2 をインストールする </li></ul><ul><li>psycopg2 をコピーする </li></ul><ul><li>[Python インストールフォルダ ]Libsite-packagespsycopg2 ↓ </li></ul><ul><li>[TracLightning インストールフォルダ ] pythonLibsite-packages </li></ul>
  32. 32. Trac の準備 <ul><li>プロジェクトを作る プロジェクトを分ければ、1つの Trac で SQLite と PostgreSQL の環境作れます > trac-admin プロジェクト名 initenv </li></ul>データベース記述: postgres://postgres:pass@localhost:5432/postgres?schema=trac 詳しくは Edgewall の wiki : DatabaseBackend ユーザ パスワード データベース名 これから作る スキーマ名
  33. 33. DBを見る ・スキーマ: trac
  34. 34. あとは動かして確認しよう! pgAdmin III からも、 SQL 試せるよ
  35. 35. ちなみに trac-admin プロジェクト名 upgrade はダメで、 trac-admin プロジェクト名 upgrade --no-backup です。 (  ´_ ゝ ` )フーン
  36. 36. 実際にエラーになった ところ
  37. 37. その1 <ul><li>Select Distinct の場合、Order byで指定した項目は、selectの中にも含めること </li></ul>SELECT DISTINCT id FROM mailarc ORDER BY utcdate; SELECT DISTINCT id, utcdate FROM mailarc ORDER BY utcdate;
  38. 38. その2 <ul><li>Selectで取得行数を指定する場合はLimit </li></ul>SELECT rowid FROM mailarc WHERE rowid='1‘; SELECT rowid FROM mailarc Limit 1 ;
  39. 39. その3 <ul><li>比較項目の型をそろえるべし 無理ならキャストするべし (PostgreSQL 8.3 以降 ) </li></ul>SELECT … FROM …WHERE CAST('mailarc.id' as text) = attachment.id SELECT … FROM …WHERE mailarc.id = attachment.id; integer text
  40. 40. その他は <ul><li>特殊なもの(ストアドプロシージャとか)使わない </li></ul><ul><li>テーブル名を検索しない(結構使いたい) </li></ul><ul><li>など、一般的な SQL といえないものはチェック </li></ul><ul><li>あと、テーブル作る時に AutoIncreament を指定したい場合は、 trac.db.Table を使う (Discussion プラグインを参考に ) </li></ul>
  41. 41. というわけで、 PostgreSQL 対応しよう! おわり

×