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

20090124shibuya Trac