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.

Reply via email to