Sorry for kind for flooding the post. But I just want to save the time of the one who is looking into the issue. I tried logging the attributes of the engine objects in two cases when I use the default 'plain' strategy and one with 'mock' strategy. It seems engine object created with plain strategy has the attribute 'url' but does not contain the same attribute when we create the object by specifying the mock strategy. That might be the main reason for the exception. Changing the argument from engine.url in database_exist(url_string) to actual uri does not give the error. It seems to be a bug in creation of engine using two strategies or maybe I am missing something.
Nonworking code (when use strategy='mock'): if not database_exists(engine.url): working code (when use strategy='mock'): if not database_exists(postgresql://username:password@db/schema): On Friday, July 20, 2018 at 12:40:50 PM UTC-4, Madhav Dube wrote: > > I wish to create scripts containing the sql statements executed by > sqlalchemy during table/schema creations. > > 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) > > > It is throwing me an error. > > 'MockConnection' object has no attribute 'url' > -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.