在sqlalchemy中创建模式脚本?

2024-06-15 18:37:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望创建包含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' object has no attribute 'url'

任何帮助或建议都将不胜感激。你知道吗


Tags: 代码from脚本sqlsqlalchemy链接错误create