我正在尝试使用SQLAlchemy的Pylons,我喜欢它,只有一件事,是否可以在执行之前打印出从CREATE TABLE
生成的原始SQL Table().create()
数据?
最佳答案
from sqlalchemy.schema import CreateTable
print(CreateTable(table))
如果使用声明性语法:
print(CreateTable(Model.__table__))
更新:
由于我已经接受了答案,并且klenwell answer中包含重要信息,因此我还将在此处添加它。
您可以通过使用引擎进行编译来获取特定数据库(MySQL,Postgresql等)的SQL。
print(CreateTable(Model.__table__).compile(engine))
更新2:
@jackotonye在注释中添加了一种无需引擎即可完成此操作的方法。
print(CreateTable(Model.__table__).compile(dialect=postgresql.dialect()))