Skip to content
Failed to load latest commit information.
tests APSW conn hooks, fixes #845 readme Fiddling around w/extras
_speedups.pyx Rename speedups cython to _speedups.pyx.
_sqlite_ext.pyx Inline the code.
_sqlite_udf.pyx Adding sqlite user-defined functions and aggregates. APSW conn hooks, fixes #845 Check sqlite lib version, fixes #852 Fixes. py3k import. xx Support for additional db url providers, fixes #781 djpeewee: Use `model_field.column` instead of `get_attname()` Change to `type(self)`, fixes #838 Nicer flaskdb api. Support create_or_get, refs #313 Add support for 'on conflict' in insert+update, fixes #587 De-dupe code in kv module. Fix MySQL migrations, esp w/r/t foreign keys. Fixes #751 Better mysql connection handling, fixes #822. Clean up cast for lookup types.
pskel Some code cleanup. Documenting `Using`. Fix #757, thanks @SarahFowler73 xx Replace get_id, set_id and pk_expr with private method names, fixes #435 Fixing bug where connect_kwargs is stomped on by re-init. APSW conn hooks, fixes #845 Experimenting with vtfuncs. Some code cleanup.


The playhouse namespace contains numerous extensions to Peewee. These include vendor-specific database extensions, high-level abstractions to simplify working with databases, and tools for low-level database operations and introspection.

Vendor extensions

  • SQLite extensions
    • User-defined aggregates, collations, and functions
    • Full-text search (FTS3/4/5)
    • BM25 ranking algorithm implemented as SQLite C extension, backported to FTS4
    • Virtual tables and C extensions
    • Closure tables
  • APSW extensions: use Peewee with the powerful APSW SQLite driver.
  • BerkeleyDB: compile BerkeleyDB with SQLite compatibility API, then use with Peewee.
  • SQLCipher: encrypted SQLite databases.
  • Postgresql extensions
    • JSON and JSONB
    • HStore
    • Arrays
    • Server-side cursors
    • Full-text search

High-level libraries

Database management and framework support

  • pwiz: generate model code from a pre-existing database.
  • Schema migrations: modify your schema using high-level APIs. Even supports dropping or renaming columns in SQLite.
  • Connection pool: simple connection pooling.
  • Reflection: low-level, cross-platform database introspection
  • Database URLs: use URLs to connect to database
  • Read slave
  • Flask utils: paginated object lists, database connection management, and more.
  • Django integration: generate peewee models from Django models, use Peewee alongside your Django ORM code.
Something went wrong with that request. Please try again.