Angenommen, ich habe ein engine
auf die MySQL-Datenbank:Wie generiert man eine Datei mit DDL im SQL-Dialekt der Engine in SQLAlchemy?
engine = create_engine('mysql://arthurdent:[email protected]/dtdb', echo=True)
Ich kann dtdb
mit Tabellen, FKs usw. füllen von:
metadata.create_all(engine)
Gibt es eine einfache Möglichkeit, die SQL-Datei zu generieren, die alle enthält die DDL-Anweisungen, anstatt diese DDL-Anweisungen tatsächlich auf dtdb
anzuwenden?
Bisher habe ich auf die Erfassung der von echo=True
erzeugten SQLAlchemy-Log-Ausgabe zurückgegriffen und sie von Hand bearbeitet. Aber das ist einfach zu schmerzhaft.
Es sieht so aus, als hätte SA eine ziemlich ausgeklügelte Schema-Management-API, aber ich habe keine Beispiele gesehen, wie man einfach die Schema-Definitionen als Text streamt.
Dieser FAQ-Link ist was ich brauchte, danke! :) Ich war nicht auf der Suche nach Migrationen wie Schema-Management. Ich brauchte einfach einen einfachen Hack, um DDL zu schnappen, ohne mit dem Motor-Echo-Output herumzuspucken. –
Dies scheint sich in Python 0.9 geändert zu haben. Auch scheinen die FAQ für 0.9 nicht zu existieren. –
Die zweite Syntax funktionierte in SQLAlchemy 1.0.12 nicht für mich - siehe https://groups.google.com/d/topic/sqlalchemy/r9neOsc64wc/discussion –