柴田です。

ちょっと気になったので調べてみました。
まず,問題の切り分けについて。TurboGearsの場合,データベース接続はほとん
どSQLObjectに依存しているようです。さらに,SQLObjectは各RDBMSに接続する
ためにPythonのモジュールを使います。てことで,まずはテストした環境につい
て。

私が試した環境:
TurboGears-0.9a4
SQLObject-0.7.1
psycopg 2.0b6
(psycopg1(2じゃないほう)は使えませんでした)

結果:
おおたにさんの報告にあったとおり,tg-admin sql createではテーブルを作成
できませんでした。
かわりに,tg-admin shellで

>>>from model import *
>>>hub.begin()
>>>Foo.createTable()
>>>Bar.createTable()
>>>hub.commit()

するとテーブルが作成できました。
なので,SQLObjectに行く前,TurboGearsのところが怪しそうです。
sql createは,TG_*を作成してくれなかったりと,挙動が一部怪しい部分があ
り,
試したのは,リレーションでつながった(つまり,依存関係のある)modelだった
ので,そのあたりで問題が出ているのかも知れません。どうも,PostgreSQLの場
合はちゃんと制約付きでテーブルを作っているっぽいです。もうちょっといろい
ろ試してみる必要がありそうです。
ちなみに,同じmodelをsqlite相手にsql createするとちゃんとテーブルを作成
できます。

なお,identityを継承したテーブルは,特に問題なく動いているようです。

On Tue, 04 Apr 2006 18:09:41 +0900, wrote:
> こんにちは、
> おおたにです。
> 
> 質問なんですが、ぼくは最初は、sqliteで開発して、sqliteと一緒だととてもう
> まく動いていました。その後、実運用はPostgresにしたくて、Postgresで動かす
> と、いろいろ問題がでてきました。
> 
> まず、tg-admin sql createでデータベースをセットアップしますが、Postgres
> に対してこれを行うとエラーがでて失敗します。tg-admin sql sqlで実行してい
> るSQL文を確認してみると、
> create table hoge(....);
> の;がなかったりします。modelがとってもシンプルなうちは大丈夫そうなんです
> が、リレーションがはってあると、問題がおきやすくなります。identity(http:
> //trac.turbogears.org/turbogears/wiki/IdentityManagement)をセットアップ
> しただけのモデルでも同じように問題がでていました。
> 
> それ以外にも
> 
> http://www.liris.org/blog/turbogears0-9a230a430f330b930c830fc30eb
> 
> にあるような感じで時々困ったことがおきます。Postgresをデータベースに使っ
> ている方でこんな問題が起きたことはないですか?
> 
> ぼくの環境依存であれば、別に構わないのですが。

取り急ぎ。

----------------------------------------
Atsushi Shibata (Webcore Corp.)
[EMAIL PROTECTED]
http://www.webcore.co.jp/
----------------------------------------

--~--~---------~--~----~------------~-------~--~----~
これは、お客様が次の Google グループに申し込まれたことを確認するメッセー
ジです。 Google Groups "turbogears-ja" group.
 To post to this group, send email to [email protected]
 このグループから退会するには、次へメールをお送りください。 [EMAIL PROTECTED]
 For more options, visit this group at 
http://groups.google.com/group/turbogears-ja
-~----------~----~----~----~------~----~------~--~---

メールによる返信