sql >> Databáze >  >> RDS >> Mysql

Potřebuji při připojování k více databázím více objektů SQLAlchemy Metadata, Base nebo Session?

Krátká odpověď je, že je nejjednodušší mít oddělené instance všech pro obě databáze. Je možné vytvořit jedno směrování relace , ale má své výhrady.

sessionmaker a Session také podporuje vícenásobné předání váže jako argument a dvoufázové potvrzení , což také umožňuje použití jedné relace s více databázemi. Naštěstí 2 databáze, které podporují 2-fázové odevzdání, jsou PostgreSQL a MySQL.

O vztahu mezi Base a metadata :

Base je základní třída, která má metatřídu používanou k deklarativnímu vytvoření Table objektů z informací poskytnutých v samotné třídě a jejích podtřídách. Všechny Table objekty implicitně deklarované podtřídami Base bude sdílet stejná MetaData .

Můžete poskytnout metadata jako argument při vytváření nového deklarativního základu a tím jej sdílet mezi více Base s, ale ve vašem případě to není užitečné.

MetaData je kolekce Table objekty a jejich přidružené konstrukce schémat. Může také obsahovat vazbu na Engine nebo Session .

Stručně řečeno, můžete mít Table s a MetaData bez Base , ale Base vyžaduje MetaData fungovat.




  1. Jak opravit nevyřešený externí symbol kvůli MySql Connector C++?

  2. Postgresql generuje_řadu měsíců

  3. Entity Framework nefunguje s časovou tabulkou

  4. Jak získat další záznam v datové sadě výsledků mysql?