おおたにです。

気になっていても時間がなくて放置していました。sqliteは割といい加減なので
気を付けないと他のDBにしたときに困りますね。

さて、Postgresでテーブルの作成に失敗することがあるという問題は、model.pyに
  soClasses = ("table1", "table2")
のようにテーブルの作成順を指定する必要があるということですね。

調べてもらってありがとうございます。

因みに余談ですが、テーブルの作成順はtg-admin sql sqlで見る限りだとASCII
ソートされているような印象があります。

Atsushi Shibata wrote:
> 柴田です。
> やっばり気になったので,さらに調べてみました。
> 
> tg-admin sql createで,実際にテーブルを作っているのはSQLObjectのようで
> す。
> 
> http://svn.colorstudy.com/SQLObject/trunk/sqlobject/manager/command.py
> 
> にあるコードで処理を行っています。ざっと見たところ,
> 
> 1) モジュールを指定して,モジュールのファイル自体,あるいはその下の階層
> をos.path.walkを使ってスキャン,Pythonのファイルを読み込む
> 2) soClassesというシーケンス(リスト,またはタプル)を探す。あったら,そこ
> にあるクラスを元にテーブルを作ろうとする
> 3) なかったら,モジュールをdirしてアトリビュートを総なめ,クラスを見つけ
> 出してテーブルを作成する
> 
> 3)でクラスを見つけ出す場合,dirで帰ってくるのはハッシュのキーですので,
> 順番が不定になります。このため,リレーションが張ってあって依存関係のある
> テーブルの生成に失敗する場合があるようです。
> 
> soClassesというリスト(またはタプル)をmodelに定義すると,テーブル生成の順
> 番をコントロールできます。私の場合は,この方法で順番を指定したところ,
> tg-admin sql createで問題なくテーブルを作成できました。TG_Userなども,
> soClassesに指定することで作成してくれるようになりました。
> 
> MLの以下のスレッド(英文です)が参考になるかも知れません。
> 
> http://groups.google.com/group/turbogears/browse_thread/thread/8a06649c2e375e24/56191266e7cd6e8a
> 
> ちょっと安心しました:-)。
> 
> 取り急ぎ。。。
> 
> ----------------------------------------
> 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 turbogears-ja@googlegroups.com
 このグループから退会するには、次へメールをお送りください。 [EMAIL PROTECTED]
 For more options, visit this group at 
http://groups.google.com/group/turbogears-ja
-~----------~----~----~----~------~----~------~--~---

メールによる返信