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.

Reply via email to