Подключить SQLModel#
Установите плагин и асинхронный драйвер выбранной базы. Для SQLite:
uv add "eazy-sdk-core[sqlmodel]"
open_workspace(...) создаёт область операций над аккаунтами, сессиями, подтверждениями,
связями и событиями:
# examples/docs/integration_sqlmodel.py
async with open_workspace(engine) as workspace:
account = await workspace.accounts.create(
"ada@mail.example",
provider="mail",
profile={"display_name": "Ada"},
)
Файл целиком
"""Persist one account in an in-memory SQLite workspace."""
from __future__ import annotations
import asyncio
from sqlalchemy.ext.asyncio import create_async_engine
from eazy_sdk_sqlmodel import open_workspace
async def main() -> None:
engine = create_async_engine("sqlite+aiosqlite:///:memory:")
try:
# docs:integration-sqlmodel:start
# examples/docs/integration_sqlmodel.py
async with open_workspace(engine) as workspace:
account = await workspace.accounts.create(
"ada@mail.example",
provider="mail",
profile={"display_name": "Ada"},
)
# docs:integration-sqlmodel:end
finally:
await engine.dispose()
print(f"stored: {account.identifier}")
if __name__ == "__main__":
asyncio.run(main())
stored: ada@mail.example
В примере используется временная SQLite. Для постоянной базы сначала вызовите
create_all(engine). Учётные данные, профиль и данные сессии сохраняются как JSON, поэтому
защиту данных на диске должно обеспечить приложение.
create_all(...) предназначен для новой базы. Для обновления старой схемы сначала запустите
eazy-sdk-sqlmodel-migrate DATABASE_URL без --apply, изучите отчёт, затем повторите команду с
--apply.