おおたにです。 気になっていても時間がなくて放置していました。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 -~----------~----~----~----~------~----~------~--~---