在sqlalchemy中创建架构脚本?

时间:2018-07-20 15:07:59

标签: python postgresql sqlalchemy

我希望创建包含在表/架构创建期间由sqlalchemy执行的sql语句的脚本。我不想打印一个我可以使用print(statement.compile(someengine))进行的原始查询,但希望将所有查询都保存为脚本。我知道有一个名为echo=True的标志,它将记录所有查询,但它仍然是日志而不是脚本。 在完成一些谷歌搜索之后,我进入了以下两个链接:

  1. SQLAlchemy printing raw SQL from create()
  2. http://docs.sqlalchemy.org/en/latest/faq/metadata_schema.html#how-can-i-get-the-create-table-drop-table-output-as-a-string

文档链接看起来很有希望,但会引发错误 我尝试过的示例代码:

from sqlalchemy import create_engine
uri ='postgresql://user:password@hostname/database_name'
def dump(sql, *multiparams, **params):
    print(sql.compile(dialect=engine.dialect))
engine = create_engine(uri, strategy='mock', executor=dump)

上面的代码抛出了这个错误

  

'MockConnection'对象没有属性'url'

任何帮助或建议将不胜感激。

0 个答案:

没有答案