Использование перечислений в SQLAlchemy отличается от обычного перечисления Python тем, что позволяет накладывать строгие ограничения на значения, которые могут храниться в базе данных. 5 Это помогает обеспечить целостность данных и сделать код более maintainable со временем. 5
Для определения перечисления в SQLAlchemy используется класс Enum из модуля sqlalchemy.types. 5 Он принимает два аргумента: первое — имя перечисления, второе — вызываемую функцию, которая возвращает список возможных значений для перечисления. 5
Кроме того, при использовании SQLAlchemy можно определить специальный тип столбца, который будет автоматически хранить и возвращать значение перечисления. 4 По умолчанию в базу данных попадает атрибут name, а не value. 2 Чтобы в базу данных попадали атрибуты value, а не name, в SQLAlchemy можно создать пользовательский тип. 2