Kapitel 10. Reflektion mit SQLAlchemy ORM und Automap

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Wie du in Kapitel 5 gelernt hast ( ), kannst du mit Reflection ein SQLAlchemy-Objekt aus einer bestehenden Datenbank füllen; Reflection funktioniert mit Tabellen, Views, Indizes und Fremdschlüsseln. Was aber, wenn du ein Datenbankschema in ORM-Klassen reflektieren willst? Zum Glück gibt es die praktische SQLAlchemy-Erweiterung automap, mit der du genau das tun kannst.

Die Reflexion über Automap ist ein sehr nützliches Werkzeug, aber seit Version 1.0 von SQLAlchemy können wir CheckConstraints, Kommentare oder Trigger nicht reflektieren. Du kannst auch keine clientseitigen Standardwerte oder eine Verbindung zwischen einer Sequenz und einer Spalte reflektieren. Es ist jedoch möglich, diese manuell mit den Methoden hinzuzufügen, die wir in Kapitel 6 gelernt haben.

Genau wie in Kapitel 5 werden wir die Chinook-Datenbank zum Testen verwenden. Wir verwenden die SQLite-Version, die du im Ordner CH11/ des Beispielcodes in diesem Buch findest. Dieser Ordner enthält auch ein Bild des Datenbankschemas, damit du dir ein Bild von dem Schema machen kannst, mit dem wir im Laufe dieses Kapitels arbeiten werden.

Eine Datenbank mit Automap spiegeln

Um eine Datenbank abzubilden, verwenden wir statt des declarative_base, das wir bisher mit dem ORM verwendet haben, das automap_base. Beginnen wir damit, ein Base ...

Get Essential SQLAlchemy, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.