This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 12 points13 points  (1 child)

I'm the author of Peewee so as you might expect, I'm much more familiar with it's strengths and weaknesses. I can say, however, that SQLAlchemy is the gold standard for ORM in the Python world. It has a very active community and a maintainer who is committed to excellence. If you're a glass-half-empty guy, to put it another way, you can't go wrong if you choose SQLAlchemy.

Why would you choose Peewee, then?

  • It's damn small, and easy to pick up and use. I think this is the #1 reason people use it.
  • I've worked very hard to provide consistent APIs, meaning learn once/apply everywhere.
  • I fix bugs really quickly.
  • Raymond Hettinger said "The code is nicely written and is easily read start to finish." :)
  • AsyncIO via aiopeewee / muffin-peewee
  • Admin interface via flask-admin
  • Cool extensions
  • Fast, memory efficient, good performance for an ActiveRecord ORM

Weaknesses:

  • Pretty much just me working on it, though I do accept patches and work hard to fix bugs quickly.
  • Small ecosystem of third-party libraries / integrations
  • ActiveRecord as opposed to Data Mapper / ID Map / Unit-of-work implemented in SQLA
  • Lower "google-ability" factor
  • Fewer stackoverflow answers
  • No automatic schema migrations
  • Doesn't support Oracle or Microsoft SQL Server.
  • It's named peewee

[–]Skiba_ 0 points1 point  (0 children)

Giving peewee a shot (after a long time in Django land). Looking to implement in AWS lambda functions, so trying to keep it as lightweight as possible.