summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/build/changelog/unreleased_13/4138.rst5
-rw-r--r--lib/sqlalchemy/sql/schema.py2
-rw-r--r--test/sql/test_metadata.py17
3 files changed, 24 insertions, 0 deletions
diff --git a/doc/build/changelog/unreleased_13/4138.rst b/doc/build/changelog/unreleased_13/4138.rst
new file mode 100644
index 000000000..fd8f0eb90
--- /dev/null
+++ b/doc/build/changelog/unreleased_13/4138.rst
@@ -0,0 +1,5 @@
+.. change::
+ :tags: schema
+ :tickets: 4138
+
+ Add ``comment`` attribute to :class:`.Column` ``__repr__`` method.
diff --git a/lib/sqlalchemy/sql/schema.py b/lib/sqlalchemy/sql/schema.py
index d65821c5c..ac3fb9607 100644
--- a/lib/sqlalchemy/sql/schema.py
+++ b/lib/sqlalchemy/sql/schema.py
@@ -1382,6 +1382,8 @@ class Column(DialectKWArgs, SchemaItem, ColumnClause):
kwarg.append("default")
if self.server_default:
kwarg.append("server_default")
+ if self.comment:
+ kwarg.append("comment")
return "Column(%s)" % ", ".join(
[repr(self.name)]
+ [repr(self.type)]
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py
index afe5bdb59..fac369bb4 100644
--- a/test/sql/test_metadata.py
+++ b/test/sql/test_metadata.py
@@ -32,6 +32,7 @@ from sqlalchemy import UniqueConstraint
from sqlalchemy.engine import default
from sqlalchemy.schema import AddConstraint
from sqlalchemy.schema import CreateIndex
+from sqlalchemy.schema import DefaultClause
from sqlalchemy.schema import DropIndex
from sqlalchemy.sql import naming
from sqlalchemy.sql import operators
@@ -628,6 +629,22 @@ class MetaDataTest(fixtures.TestBase, ComparesTables):
(Sequence("my_seq", start=5), "Sequence('my_seq', start=5)"),
(Column("foo", Integer), "Column('foo', Integer(), table=None)"),
(
+ Column(
+ "foo",
+ Integer,
+ primary_key=True,
+ nullable=False,
+ onupdate=1,
+ default=42,
+ server_default="42",
+ comment="foo",
+ ),
+ "Column('foo', Integer(), table=None, primary_key=True, "
+ "nullable=False, onupdate=%s, default=%s, server_default=%s, "
+ "comment='foo')"
+ % (ColumnDefault(1), ColumnDefault(42), DefaultClause("42"),),
+ ),
+ (
Table("bar", MetaData(), Column("x", String)),
"Table('bar', MetaData(bind=None), "
"Column('x', String(), table=<bar>), schema=None)",