3

SQLAlchemyを使用していて、/ model / __ init __。pyで定義したテーブルを作成できますが、クラス、テーブル、およびそれらのマッピングを/modelディレクトリにある他のファイルで定義しました。

たとえば、/ model/profile.pyで定義およびマッピングされたプロファイルクラスとプロファイルテーブルがあります。

私が実行するテーブルを作成するには:

パスターセットアップ-アプリdevelopment.ini

しかし、私の問題は、/ model / __ init __。pyで定義したテーブルが正しく作成されているのに、/ model/profile.pyで見つかったテーブル定義が作成されていないことです。/model/profile.pyにあるテーブル定義を実行して、すべてのテーブルを作成するにはどうすればよいですか?

助けてくれてありがとう!

4

3 に答える 3

5

私は最初の本物のPylonsプロジェクトで同じ問題に遭遇しました。私のために働いた解決策はこれでした:

  1. profile.pyファイルでテーブルとクラスを定義します
  2. あなたの後にあなたの__init__.py追加でfrom profile import *def init_model
  3. その後、すべてのマッパー定義を追加しました。それらをすべてinitファイルに保持することで、異なるファイルで定義されたテーブル間で関連していたいくつかの問題が解決されました。

また、それ以来、宣言型メソッドを使用してプロジェクトを作成しており、initファイルでマッピングを定義する必要はありませんでした。

于 2009-10-06T21:55:48.153 に答える
0

宣言型スタイルを使用している場合は、テーブルの生成に必ずBase.metaを使用してください。

于 2009-09-28T06:41:27.020 に答える
0

他のテーブルのモジュールをinit .py にインポートし、他のファイルで models.meta のメタデータ オブジェクトを使用するだけです。Pylons のデフォルトの setup_app 関数は、インポート後に model.meta からメタデータ オブジェクトにあるすべてのテーブルを作成します。

于 2009-09-27T07:53:32.890 に答える