On Mon, Jul 23, 2018 at 10:11 AM, Madhav Dube <[email protected]> wrote: > 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.
the "mock" engine doesn't have a .url attribute. this is because it doesn't point to any kind of database anywhere, it just spits to standard output. if you are trying to coordinate the state of a real database referred to by a URL with some SQL strings you're generating with a mock, you need to keep those two concerns separate. > > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
