On Feb 20, 2011, at 1:58 AM, AwaisMuzaffar wrote: > Thanks for the reply guys it has been very informative. > > My main reason for using raw is that I have spent so much time > learning MySQL, to me it seems counter productive to learn SQLALchemy > methodologies from scratch. > > Ok, so maybe manually executing CREATE is not a great idea, but what > about performing queries with pure MySQL, is that fine?
The main utility I've found in SQLAlchemy is its connection pooling, automatic reconnection, and the fact that dynamically generating queries by concatenating raw SQL inside text strings is pretty horrendous. After using SQLAlchemy for awhile, I've finally gotten to the point where its actually easier for me to now write many SQLAlchemy queries than to use the raw SQL. Of course, as was mentioned, you do need to know the raw SQL to be able to tell SQLAlchemy how to do the right thing anyways. I'd say its worth the hassle of learning the abstraction purely for the ability to easily dynamically generate queries. Concatenating text strings of raw SQL is very error-prone. An example of dynamically generating an SQLAlchemy query in a model instance method: cases = meta.Session.query(cls) if court: cases = cases.filter_by(court_id=court) elif ecf: cases = cases.filter_by(ecf_abbreviation=ecf) cases = cases.filter(cls.filed_on>=datetime(2000,1,1)) if judge: cases = cases.filter(cls.id.in_(judge_case_ids(judge))) It's quite easy to dynamically build up the filter conditions, dynamically include additional table joins as needed, etc. Cheers, Ben -- You received this message because you are subscribed to the Google Groups "pylons-devel" group. To post to this group, send email to pylons-devel@googlegroups.com. To unsubscribe from this group, send email to pylons-devel+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/pylons-devel?hl=en.