Backend & ИИ

Что такое SQLAlchemy и Alembic (работа с базой данных)

Что это

SQLAlchemy — библиотека, через которую программа на Python работает с базой данных без ручных SQL-запросов на каждый шаг. Alembic — её спутник для миграций: меняет структуру таблиц по шагам и не теряет уже накопленные данные.

Как используем

В тикет-системе для IT-отдела 20 таблиц и 16 миграций Alembic, в интернет-магазине миграции применяются сами при старте API. Взятие заявки блокирует строку в базе, поэтому два администратора не возьмут одну и ту же.

Где это нужно бизнесу

  • В боте или магазине копятся заказы, заявки и платежи, а функции продолжают добавляться — значит, будет меняться и структура базы.
  • Несколько администраторов работают с одними записями одновременно.

Как мы это используем

  • Тикет-система: MariaDB, 20 таблиц и 16 миграций Alembic. Взятие заявки блокирует строку, поэтому два администратора не возьмут одну и ту же.
  • Интернет-магазин: SQLAlchemy 2 в асинхронном режиме, миграции Alembic применяются сами при старте API.
  • ToshaMusic: миграции сверяются с моделями, чтобы схема и код не разошлись.
  • Электронная очередь и финансовый ассистент: асинхронная SQLAlchemy поверх PostgreSQL, таблицы создаются при запуске.

Типичные проблемы

  • Нет миграций — откат только из копии. В очереди и финансовом ассистенте схема создаётся при старте, и в ограничениях честно записано: откат версии — из копии базы.
  • Синхронный доступ в асинхронном боте тормозит всех пользователей, поэтому драйверы асинхронные: aiomysql, asyncpg.

Когда это не нужно

Для бота с одной-двумя таблицами в SQLite хватает простых запросов, отдельный слой и миграции избыточны.

← Все термины

Нужен сайт, бот или автоматизация?

Термины объяснили — теперь давайте к делу: расскажите о задаче, а мы переведём её на понятный план работ.