Thanks Askel... You still made me think about doing the reflection of all
tables upfront when the app starts... When there are too many tables, this
can add up to startup time.
It would be great if we could easily subclass Table though :)

Cheers,
g.


On Thu, Aug 8, 2013 at 4:50 PM, askel <[email protected]> wrote:

> Please disregard what I suggested. I must have some mentality problems but
> I completely missed part about table being already reflected. In that case
> all events have already happened and my suggestion does not make any sense.
>
> On Thursday, August 1, 2013 4:25:11 PM UTC-4, tiadobatima wrote:
>>
>> Hi Askel...
>>
>> What I'd like to accomplish is to add few more attributes and methods to
>> Table (or maybe override "insert/update/delete/select") to do post
>> processing of the Result/Row proxies and return them in different formats
>> such as json, yaml, xml, etc... so, while you suggestion is really neat,
>> I'm not sure it's enough to do what I want... Is it?
>>
>> I could create my metadata obj from a bunch of extended Table object
>> instead of populating it from reflection, but I feel its a lot nicer to use
>> the real DB schema as the source for the metadata (thru reflection), than
>> trusting the table definitions in code to correspond exactly with the DB
>> schema. I have a hard time trusting that nobody will ever run an alter
>> table out-of-band, and not update the definitions... hehehe
>>
>> Thanks!
>> g.
>>
>>
>> On Thu, Aug 1, 2013 at 5:35 AM, askel <[email protected]> wrote:
>>
>>> There is "column_reflect" event triggered for each column during table
>>> reflection. Most likely your extra functionality depends on some columns so
>>> I'd look at something like:
>>>
>>>
>>>     from sqlalchemy.event import listens_for
>>>
>>>
>>>     columns_to_reflect = set(('id', 'name', 'real_name',
>>> 'really_real_name'))
>>>
>>>     @listens_for(my_table, 'column_reflect'):
>>>     def column_reflected(inspector, table, column_info):
>>>         columns_to_reflect.remove(**column_info['name'])
>>>         if not columns_to_reflect:
>>>             do_my_dirty_job(table)
>>>
>>> It does not help to have no "table_reflected" event though. May be this
>>> should become a feature request.
>>>
>>>
>>> On Wednesday, July 31, 2013 1:34:46 PM UTC-4, tiadobatima wrote:
>>>>
>>>> Hello there,
>>>>
>>>> When this application starts, we reflect the DB into a MetaData()
>>>> object and this is made available for everyone to use.
>>>> I'd like to add a few more methods to the table objects within that
>>>> MetaData(). Is there any easy way to extend these already
>>>> instantiated sqlalchemy.**schema**.Table objects?
>>>>
>>>> Thanks! :)
>>>>
>>>>  --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "sqlalchemy" group.
>>> To unsubscribe from this topic, visit https://groups.google.com/d/**
>>> topic/sqlalchemy/EoTA-H1s-bQ/**unsubscribe<https://groups.google.com/d/topic/sqlalchemy/EoTA-H1s-bQ/unsubscribe>
>>> .
>>> To unsubscribe from this group and all its topics, send an email to
>>> sqlalchemy+...@**googlegroups.com.
>>> To post to this group, send email to [email protected].
>>> Visit this group at 
>>> http://groups.google.com/**group/sqlalchemy<http://groups.google.com/group/sqlalchemy>
>>> .
>>> For more options, visit 
>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>> .
>>>
>>>
>>>
>>
>>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "sqlalchemy" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sqlalchemy/EoTA-H1s-bQ/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to