SQLAlchemy, набор инструментов SQL с открытым исходным кодом и объектно-реляционный преобразователь

алхимия

SQLAlchemy — это набор инструментов Python SQL и объектно-реляционный преобразователь, который дает разработчикам приложений всю мощь и гибкость SQL.

Команда SQLAlchemy недавно, инструмент SQL с открытым исходным кодом и объектно-реляционное сопоставление, написанное на Python, выпустил релиз новой версии 2.0.

Для тех, кто не знаком с SQLAlchemy, вы должны знать, что это набор инструментов python sql и объектно-реляционное сопоставление, предоставляет полный набор известных моделей сохраняемости, предназначенных для эффективного и высокопроизводительного доступа к базе данных, адаптированных к простому предметному языку Pythonic.



Основные новые функции в SQLAlchemy 2.0

Новая версия 2.0 от SQLAlchemy поставляется со значительными изменениями API по сравнению с серией 1.4.При этом важно отметить, что приложения, которые работают с пакетом 1.x и не прошли процесс миграции, должны гарантировать, что требования определены для сохранения желаемого основного набора версий SQLAlchemy.



SQLAlchemy 2.0 объединяет новые синтаксисы ORM, совместимые с pep-484. нет плагина: декларативный стиль ORM конфигурации картографа теперь имеет совершенно новый вид, в значительной степени заимствуя из таких систем, как классы данных Python и SQLModel, для предоставления операторов ORM на основе аннотаций, используя интерпретацию аннотаций pep-484 во время выполнения для создания сопоставленных классов. которые полностью типизированы и совместимы с любым типом тестера или IDE.

Еще одно изменение, которое выделяется в этой новой версии SQLАлхимия 2.0 является то, что вводит поддержку декларативного назначенного класса аннотированный, который может быть сгенерирован непосредственно как класс данных Python; это приводит к классу сопоставления ORM, объявленному как любой другой класс, с автоматически сгенерированными методами класса данных. Этот новый подход значительно улучшен по сравнению с предварительными «гибридными» подходами, представленными в SQLAlchemy 1.4.



В дополнение к этому мы также можем обнаружить, что он представляет оптимизацию в архитектура отражения схемы который в принципе почти новый, так как теперь операции, отражающие целые схемы сразу, такие как MetaData.reflect и недавно добавленные операции на уровне схемы с конструкцией inspec, теперь они основаны на фундаменте, который предполагает операции, которые работают с сотнями или тысячами таблиц одновременно., а не по одной таблице за раз.

Новая архитектура включена для серверных частей PostgreSQL и Oracle., которые были двумя серверными частями с самыми большими проблемами производительности для больших схем, где это дает улучшение на 250% для PostgreSQL и на 900% для Oracle. Диалект SQL Server — следующая цель новой архитектуры. Любой сторонний диалект может выбрать новую систему «много столов одновременно» или остаться на старом подходе «стол сразу», который остается полностью поддерживаемым без изменений.

Кроме того, предлагается совершенно новый подход к INSERT, полностью интегрированный с ORM, который обычно на порядок быстрее работает с большинством бэкендов — большинством баз данных и Драйверы, поддерживаемые SQLAlchemy, теперь добавили или улучшили поддержку синтаксиса. ВСТАВИТЬ ВОЗВРАТ.



В новой версии SQLAlchemy 2.0 воспользовался возможностью, чтобы поддержать и улучшить поддержку RETURNING p.Для всех ваших бэкендов, за исключением MySQL (только MySQL; MariaDB поддерживает ВОЗВРАТНЫЕ загрузки).

Частью этого улучшения является возможность вставлять тысячи строк в один пакетный оператор, который также возвращает полный набор сгенерированных сервером значений, необходимых для ORM, что никогда не было возможно раньше, за единственным исключением предварительной реализации. , который был основан на драйвере psycopg2.



В версии 2.0 была проделана работа по оптимизации INSERT для всех бэкэндов, так что тысячи объектов ORM с первичными ключами или без них, и эта возможность полностью интегрирована в ORM для всех операций INSERT, как для «обычных» операций ORM для единиц работы, так и для «массовых» подходов, которые также были недавно пересмотрены в версии 2.0.

Наконец, если вы хотите узнать больше об этом, вы можете ознакомиться с деталями По следующей ссылке.

Следует отметить, что новая версия SQLAlchemy 2.0 является достаточно важным выпуском, чтобы иметь два руководства по миграции: Основное руководство по миграции объясняет, как обеспечить совместимость API для работы приложения с SQLAlchemy 1.4 или 2.0.




2023-02-16T18:49:11
приложений