Skip to content
Packages Examples Agents Blog Get started
Terminal window
uv add oridecon-sql

oridecon (core) and oridecon-contracts are pulled in automatically. For Postgres or MySQL, add the driver extra:

Terminal window
uv add "oridecon-sql[postgres]" # asyncpg
uv add "oridecon-sql[mysql]" # aiomysql

Configure a database and boot it with DatabaseModule:

import asyncio
from oridecon import Application
from oridecon.sql import DatabaseModule
async def main():
async with Application.boot(
name="my-app",
modules=[DatabaseModule.configure("sqlite+aiosqlite:///example.db")],
) as app:
print("Database connected")
asyncio.run(main())

from dataclasses import dataclass
from oridecon.domain import DomainModel
from oridecon.sql import GenericRepository
@dataclass
class User(DomainModel):
id: int | None = None
name: str = ""
email: str = ""
repo = GenericRepository[User, int](
provider=db_provider, # resolved from container
table_name="users",
entity_class=User,
key_field="id",
)

  • Guide — mental model, repositories, queries, migrations
  • How-Tos — task-oriented recipes
  • Configuration — every config key