0

のテーブルにマップされたすべてのクラスを取得しようとしています

metadata.sorted_tables

これらのテーブルを置き換えたいの__table__ですが、宣言型を使用しているため、モデルを更新する必要があります。

宣言型を使用しているときに、テーブルを指定してマップされたモデルを取得するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

SQLAlchemyは、MetaDataオブジェクト内のテーブルの「置換」を実際にはサポートしていません。また、クラスがマップされているテーブルのアドホック置換もサポートしていません。個々のテーブルには、相互に依存関係があるだけでなく、マップされたクラスにも依存関係があります。この依存関係のシステムは、追加的にのみ構築できます。ものを置き換えることはサポートされていません。MetaDataを完全に破棄し、新しいものに置き換え、clear_mappers()を呼び出してすべてのマッピングを削除した場合にのみ、クラスを新しいテーブルに再マッピングすることができます。しかし、これは宣言型マッピングを破棄し、これを行うための有効なユースケースもありません。

クラスを特定の方法でテーブルにマップするときに、その特定のクラスに対してそれを行うのはこれが最後になるように、問題に別の方法でアプローチする必要があります。

于 2012-05-18T21:44:23.000 に答える