sqlalchemyを使用して既存の多対多テーブルリレーションをロードする

StackOverflow https://stackoverflow.com/questions/1430584

  •  07-07-2019
  •  | 
  •  

質問

既存のPostgreSQLデータベースと対話するためにSqlAlchemyを使用しています。

多対多の関係で編成されたデータにアクセスする必要があります。ドキュメントには関係の作成方法が記載されていますが、既存の関係を適切にロードして照会する例は見つかりません。

役に立ちましたか?

解決

既存のリレーションのクエリは、新しいリレーションの作成と実際には変わりません。ほぼ同じコードを記述しますが、既に存在するテーブル名と列名を指定します。もちろん、 CREATE TABLE ステートメントを発行するためにSQLAlchemyは必要ありません。

http://www.sqlalchemy.org/を参照してください。 docs / 05 / mappers.html#many-to-many 。必要なのは、例のように既存の親、子、および関連テーブルの外部キー列を指定し、 autoload = True を指定してテーブルの他のフィールドに入力することだけです。ほとんど常にそうであるように、関連付けテーブルに追加情報が格納されている場合は、多対多のリレーションを2つの多対1のリレーションに分割する必要があります。

MySQLを使用してSQLAlchemyを学びました。そのデータベースでは、明示的なデータベース制約ではないため、外部キー関係を常に指定する必要がありました。幸運にもデータベースからより多くのことを反映できるかもしれませんが、 httpのようなものを使用することを好むかもしれません。 ://pypi.python.org/pypi/sqlautocode を使用して、データベーススキーマ全体をコーディングし、リフレクションの遅延を回避します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top