[解決済み] SqlAlchemy Python マルチデータベース
2022-02-19 20:23:32
質問
SqlAlchemy を使って、(同じサーバ上の)複数のデータベースにアクセスしています。現在の接続文字列は以下の通りです
connect_string = "mssql+pyodbc://{0}:{1}@{2}/{3}".format(USERNAME_R, PASSWORD_R, SERVER_R, DATABASE_R)
engine = create_engine(connect_string)
session = sessionmaker(bind=engine)()
Record = declarative_base(engine)
同じサーバー上の複数のデータベースに接続できるようにするには、この宣言をどのように修正すればよいでしょうか(例.
DATABASE1
&です。
DATABASE2
). これは正しい方向を指しているように見えますが、あまり明確ではなく、Flaskに特有のものなのかどうかわかりません。
https://pythonhosted.org/Flask-SQLAlchemy/binds.html
解決方法は?
こんにちは、あなたはこれを達成することができます次のようになります。
engines = {
'drivers':create_engine('postgres://postgres:admin@localhost:5432/Drivers'),
'dispatch':create_engine('postgres://postgres:admin@localhost:5432/dispatch')
}
私は、サーバーに2つのデータベースと2つのテーブルを持っています。その後、クエリを作成中に特定のデータベース接続をルーティングするためにルーティングクラスを使用することができます。
class RoutingSession(Session):
def get_bind(self, mapper=None, clause=None):
if mapper and issubclass(mapper.class_, drivers):
return engines['drivers']
elif self._flushing:
return engines['dispatch']
これでクエリを実行できるようになります。例えば、最初にこのようにセッションを作成する必要があります。
Session = sessionmaker(class_=RoutingSession)
session = Session()
driverssql = session.query(drivers).all()
これは、sqlalchemyで複数のデータベースを使用できるようにするものでした。
関連
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Python Pillow Image.save jpg画像圧縮問題
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】TypeErrorを取得しました。エントリを持つ子テーブルの後に親テーブルを追加しようとすると、 __init__() missing 1 required positional argument: 'on_delete'
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】Flaskのテンプレートが見つからない【重複あり