Skip to content
This repository was archived by the owner on Aug 19, 2025. It is now read-only.

ORM

Build StatusCoveragePackage version

The orm package is an async ORM for Python, with support for Postgres, MySQL, and SQLite. ORM is built with:

Because ORM is built on SQLAlchemy core, you can use Alembic to provide database migrations.


Documentation: https://www.encode.io/orm


Installation

$ pip install orm

You can install the required database drivers with:

$ pip install orm[postgresql]
$ pip install orm[mysql]
$ pip install orm[sqlite]

Driver support is provided using one of asyncpg, aiomysql, or aiosqlite.


Quickstart

Note: Use ipython to try this from the console, since it supports await.

importdatabasesimportormdatabase=databases.Database("sqlite:///db.sqlite")
models=orm.ModelRegistry(database=database)
classNote(orm.Model):
tablename="notes"registry=modelsfields= {
"id": orm.Integer(primary_key=True),
"text": orm.String(max_length=100),
"completed": orm.Boolean(default=False),
}
# Create the tablesawaitmodels.create_all()
awaitNote.objects.create(text="Buy the groceries.", completed=False)
note=awaitNote.objects.get(id=1)
print(note)
# Note(id=1)

— 🗃 —

ORM is BSD licensed code. Designed & built in Brighton, England.

About

An async ORM. 🗃

Resources

Code of conduct

Contributing

Security policy

Stars

1.9k stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages