SQLAlchemy печать сырого SQL от создают ()

Я даю Опорам попытку с SQLAlchemy, и я люблю его, есть всего одна вещь, действительно ли возможно распечатать сырой SQL, СОЗДАЮТ данные о СТОЛЕ, произведенные из Стола () .create (), прежде чем он будет выполнен?

40
задан Mads Madsen 24 January 2010 в 20:40
поделиться

2 ответа

from sqlalchemy.schema import CreateTable

print(CreateTable(table))

Если вы используете декларативный синтаксис:

print(CreateTable(Model.__table__))

Обновление:

Поскольку у меня есть принятый ответ и есть важная информация в ответе Кленвелла , я также добавлю его сюда.

Вы можете получить SQL для вашей конкретной базы данных (MySQL, Postgresql и т. Д.), Скомпилировав ее с помощью вашего движка.

print(CreateTable(Model.__table__).compile(engine))

Обновление 2:

@jackotonye В комментариях добавлен способ сделать это без движка.

print(CreateTable(Model.__table__).compile(dialect=postgresql.dialect()))
87
ответ дан 27 November 2019 в 01:07
поделиться

Что-то вроде этого? (Из FAQ SQLA)

http://docs.sqlalchemy.org/en/latest/faq/sqlexpressions.html

8
ответ дан 27 November 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: