From: Mike Bayer Date: Wed, 1 Feb 2017 23:09:45 +0000 (-0500) Subject: - add a note referring to the enum value as not currently persisted, X-Git-Tag: rel_1_1_6~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8342ca6c6932b8a30f4ea9650721244eeda35d51;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - add a note referring to the enum value as not currently persisted, reference #3906 Change-Id: I2274c356cc88cd011c5a34a69e75a2548a93e87a --- diff --git a/doc/build/changelog/migration_11.rst b/doc/build/changelog/migration_11.rst index 04bdd72e99..58ca270274 100644 --- a/doc/build/changelog/migration_11.rst +++ b/doc/build/changelog/migration_11.rst @@ -1505,16 +1505,16 @@ Support for Python's native ``enum`` type and compatible forms The :class:`.Enum` type can now be constructed using any PEP-435 compliant enumerated type. When using this mode, input values and return values are the actual enumerated objects, not the -string values:: +string/integer/etc values:: import enum from sqlalchemy import Table, MetaData, Column, Enum, create_engine class MyEnum(enum.Enum): - one = "one" - two = "two" - three = "three" + one = 1 + two = 2 + three = 3 t = Table( diff --git a/lib/sqlalchemy/sql/sqltypes.py b/lib/sqlalchemy/sql/sqltypes.py index 9b48e839f6..78a130f623 100644 --- a/lib/sqlalchemy/sql/sqltypes.py +++ b/lib/sqlalchemy/sql/sqltypes.py @@ -1131,9 +1131,9 @@ class Enum(String, SchemaType): import enum class MyEnum(enum.Enum): - one = "one" - two = "two" - three = "three" + one = 1 + two = 2 + three = 3 t = Table( @@ -1144,6 +1144,11 @@ class Enum(String, SchemaType): connection.execute(t.insert(), {"value": MyEnum.two}) assert connection.scalar(t.select()) is MyEnum.two + Above, the string names of each element, e.g. "one", "two", "three", + are persisted to the database; the values of the Python Enum, here + indicated as integers, are **not** used; the value of each enum can + therefore be any kind of Python object whether or not it is persistable. + .. versionadded:: 1.1 - support for PEP-435-style enumerated classes.