Supongamos que tengo una engine
apuntando a la base de datos MySQL:¿Cómo generar un archivo con DDL en el dialecto SQL del motor en SQLAlchemy?
engine = create_engine('mysql://arthurdent:[email protected]/dtdb', echo=True)
que pueden poblar dtdb
con mesas, FKs, etc por:
metadata.create_all(engine)
¿Hay una manera fácil de generar el archivo SQL que contiene todas las instrucciones DDL en lugar de aplicar realmente estas declaraciones DDL al dtdb
?
Hasta ahora he recurrido a la captura de la salida de registro SQLAlchemy producida por echo=True
, y la edición a mano. Pero eso es demasiado doloroso.
Parece que SA tiene una API de gestión de esquemas muy elaborada, pero no he visto ejemplos de simplemente transmitir las definiciones de esquema como texto.
Ese enlace de preguntas frecuentes es lo que necesitaba, ¡gracias! :) No estaba buscando migraciones, como la administración de esquemas. Simplemente, necesitaba un truco simple para capturar DDL sin que se produjese un error con la salida de eco del motor. –
Esto parece haber cambiado en Python 0.9. Además, las preguntas frecuentes no parecen existir para 0.9. –
La segunda sintaxis no funcionó en SQLAlchemy 1.0.12 para mí; consulte https://groups.google.com/d/topic/sqlalchemy/r9neOsc64wc/discussion –