Оценок пока нет Что есть SQLAlchemy, Alembic и SQLModel?

Подробно про SQLAlchemy

SQLAlchemy — это программная библиотека на языке Python для работы с реляционными СУБД с применением технологии ORM. Служит для синхронизации объектов Python и записей реляционной базы данных. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними на языке Python без использования SQL. Библиотека была выпущена в феврале 2006 под лицензией открытого ПО MIT.

Простыми словами SQLAlchemy — это библиотека для напсиания запросов на языке Python без необходимости использовать язык SQL напрямую, хотя такая возможность также имеется. По аналогии он похож на пакет Doctrine в php, если вы сталкивались с написанием запросов в Laravel, то вам легче это будет поянть.

Фишка ORM в том, что это он позволяет нам ассоциировать классы и свойства с таблицами и полями в БД, позволяя нам легко манипулировать данными не выходя за пределами языка Python, а еще делать это на кроссбазовом уровне, т.е. нам нет необходимости учитывать ньюансы языка SQL для разных БД, SQLAlchemy об этом разберется сам.

Основные возможности библиотеки SQLAlchemy:

  • Использование ORM не является обязательным
  • Устоявшаяся архитектура
  • Возможность использовать SQL, написанный вручную
  • Поддержка транзакций
  • Создание запросов с использованием функций и выражений Python
  • Модульность и расширяемость
  • Дополнительная возможность раздельного определения объектного отображения и классов
  • Поддержка составных индексов
  • Поддержка отношений между классами, в том числе «один-ко-многим» и «многие-ко-многим»
  • Поддержка ссылающихся на себя объектов
  • Предварительная и последующая обработка данных (параметров запроса, результата)
  • и другие.

Подробно про Alembic

Alembic — это инструмент миграции базы данных, написанный автором SQLAlchemy. Инструмент миграции предлагает следующие функции:

  • Может отправлять операторы ALTER в базу данных, чтобы изменить структуру таблиц и других конструкций.
  • Предоставляет систему, с помощью которой можно создавать «сценарии миграции»; каждый сценарий указывает конкретную серию шагов, которые могут «обновить» целевую базу данных до новой версии, и, необязательно, ряд шагов, которые могут «понизить» аналогичным образом, выполняя те же шаги в обратном порядке.
  • Позволяет сценариям выполняться в некоторой последовательности.

Подробно про SQLModel

SQLModel — библиотека для взаимодействия с базами данных SQL из кода Python, с объектами Python. Основанный на аннотациях типов Python, он по сути представляет собой оболочку поверх pydantic и SQLAlchemy , что упрощает работу с ними обоими.

SQLModel — это библиотека для взаимодействия с базами данных SQL из кода Python с объектами Python. Он разработан, чтобы быть интуитивно понятным, простым в использовании, хорошо совместимым и надежным.

SQLModel основан на аннотациях типов Python и работает на Pydantic и SQLAlchemy.

Ключевые особенности:

  • Интуитивное написание : отличная поддержка разработчика. Меньше времени на отладку. Разработан, чтобы быть простым в использовании и изучении. Меньше времени на чтение документов.
  • Простота в использовании : он имеет разумные значения по умолчанию и выполняет большую работу по упрощению кода, который вы пишете.
  • Совместимость : разработан для совместимости с FastAPI , Pydantic и SQLAlchemy.
  • Расширяемость : у вас есть все возможности SQLAlchemy и Pydantic.
  • Коротко : сведите к минимуму дублирование кода. Аннотации одного типа делают много работы. Нет необходимости дублировать модели в SQLAlchemy и Pydantic.

Пожалуйста, оцените материал

WebSofter

Web - технологии