[解決済み] SQLAlchemy - テーブルのリストを取得する
2022-07-06 20:45:19
質問
ドキュメントに情報がなかったのですが、SQLAlchemyで作成されたテーブルの一覧を取得するにはどうしたらよいでしょうか?
クラスメソッドでテーブルを作成しました。
どのように解決するのですか?
すべてのテーブルを
tables
属性にまとめられています。 それらのテーブルの名前のリストを得るには。
>>> metadata.tables.keys()
['posts', 'comments', 'users']
declarative 拡張を使っているのであれば、おそらくメタデータを自分で管理することはないでしょう。 幸いなことに、メタデータはベースクラス上にまだ存在しています。
>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)
もし、データベースに存在するテーブルのうち、まだ SQLAlchemy に伝えていない ものまで把握しようとするなら、テーブルリフレクションを使うことができます。 そうすれば、SQLAlchemy はデータベースを検査し、欠落しているすべてのテーブルを メタデータに反映します。
>>> metadata.reflect(engine)
Postgresの場合、複数のスキーマがある場合、エンジン内のすべてのスキーマをループする必要があります。
from sqlalchemy import inspect
inspector = inspect(engine)
schemas = inspector.get_schema_names()
for schema in schemas:
print("schema: %s" % schema)
for table_name in inspector.get_table_names(schema=schema):
for column in inspector.get_columns(table_name, schema=schema):
print("Column: %s" % column)
関連
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] 列の値に基づいてDataFrameから行を選択するにはどうすればよいですか?
-
[解決済み] リストを均等な大きさの塊に分割するには?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] インデックスを指定してリストから要素を削除する方法
-
[解決済み] インスタンスのクラス名を取得する?
-
[解決済み] sqlalchemy の declarative ORM 拡張機能で複数カラムのインデックスを使用する場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] PythonでSelenium WebDriverを使用してテキストを取得する方法
-
[解決済み] 2つの弦をインターリーブさせる最もピトニックな方法
-
[解決済み] ネストしたdictからのPythonデータクラス
-
[解決済み] Python で、クラスオブジェクトを dict にキャストするにはどうしたらいいですか?
-
[解決済み] Google App EngineのためのFlaskとwebapp2の比較
-
[解決済み] 乱数の行列を作成する簡単な方法
-
[解決済み] デバッグモードでFlaskが2回初期化されないようにするには?重複
-
[解決済み] Pythonのモジュール命名規則