from ..sql._typing import _TypeEngineArgument
from ..sql.elements import ColumnElement
from ..sql.schema import _ServerDefaultArgument
- from ..sql.schema import FetchedValue
+ from ..sql.schema import _ServerOnUpdateArgument
from ..sql.selectable import Alias
from ..sql.selectable import Subquery
onupdate: Optional[Any] = None,
insert_default: Optional[Any] = _NoArg.NO_ARG,
server_default: Optional[_ServerDefaultArgument] = None,
- server_onupdate: Optional[FetchedValue] = None,
+ server_onupdate: Optional[_ServerOnUpdateArgument] = None,
active_history: bool = False,
quote: Optional[bool] = None,
system: bool = False,
"FetchedValue", str, TextClause, ColumnElement[Any]
]
+_ServerOnUpdateArgument = _ServerDefaultArgument
+
class SchemaConst(Enum):
RETAIN_SCHEMA = 1
onupdate: Optional[Any] = None,
primary_key: bool = False,
server_default: Optional[_ServerDefaultArgument] = None,
- server_onupdate: Optional[FetchedValue] = None,
+ server_onupdate: Optional[_ServerOnUpdateArgument] = None,
quote: Optional[bool] = None,
system: bool = False,
comment: Optional[str] = None,
from typing import Optional
+from sqlalchemy import Boolean
+from sqlalchemy import FetchedValue
from sqlalchemy import ForeignKey
+from sqlalchemy import func
from sqlalchemy import Index
from sqlalchemy import Integer
+from sqlalchemy import literal_column
from sqlalchemy import String
+from sqlalchemy import text
+from sqlalchemy import true
from sqlalchemy import UniqueConstraint
from sqlalchemy.orm import DeclarativeBase
from sqlalchemy.orm import Mapped
from sqlalchemy.orm import mapped_column
+from sqlalchemy.sql.schema import SchemaConst
class Base(DeclarativeBase):
)
__table_args__ = (UniqueConstraint(a, b, name="uq1"), Index("ix1", c, d))
+
+
+mapped_column()
+mapped_column(
+ init=True,
+ repr=True,
+ default=42,
+ compare=True,
+ kw_only=True,
+ primary_key=True,
+ deferred=True,
+ deferred_group="str",
+ deferred_raiseload=True,
+ use_existing_column=True,
+ name="str",
+ type_=Integer(),
+ doc="str",
+ key="str",
+ index=True,
+ unique=True,
+ info={"str": 42},
+ active_history=True,
+ quote=True,
+ system=True,
+ comment="str",
+ sort_order=-1,
+ any_kwarg="str",
+ another_kwarg=42,
+)
+
+mapped_column(default_factory=lambda: 1)
+mapped_column(default_factory=lambda: "str")
+
+mapped_column(nullable=True)
+mapped_column(nullable=SchemaConst.NULL_UNSPECIFIED)
+
+mapped_column(autoincrement=True)
+mapped_column(autoincrement="auto")
+mapped_column(autoincrement="ignore_fk")
+
+mapped_column(onupdate=1)
+mapped_column(onupdate="str")
+
+mapped_column(insert_default=1)
+mapped_column(insert_default="str")
+
+mapped_column(server_default=FetchedValue())
+mapped_column(server_default=true())
+mapped_column(server_default=func.now())
+mapped_column(server_default="NOW()")
+mapped_column(server_default=text("NOW()"))
+mapped_column(server_default=literal_column("false", Boolean))
+
+mapped_column(server_onupdate=FetchedValue())
+mapped_column(server_onupdate=true())
+mapped_column(server_onupdate=func.now())
+mapped_column(server_onupdate="NOW()")
+mapped_column(server_onupdate=text("NOW()"))
+mapped_column(server_onupdate=literal_column("false", Boolean))
+
+mapped_column(
+ default=None,
+ nullable=None,
+ primary_key=None,
+ deferred_group=None,
+ deferred_raiseload=None,
+ name=None,
+ type_=None,
+ doc=None,
+ key=None,
+ index=None,
+ unique=None,
+ info=None,
+ onupdate=None,
+ insert_default=None,
+ server_default=None,
+ server_onupdate=None,
+ quote=None,
+ comment=None,
+ any_kwarg=None,
+)
Column(Integer, server_default=literal_column("42", Integer), nullable=False)
# server_onupdate
-Column("name", server_onupdate=FetchedValue(), nullable=False)
Column(server_onupdate=FetchedValue(), nullable=False)
+Column(server_onupdate="now()", nullable=False)
+Column("name", server_onupdate=FetchedValue(), nullable=False)
Column("name", Integer, server_onupdate=FetchedValue(), nullable=False)
+Column("name", Integer, server_onupdate=text("now()"), nullable=False)
+Column(Boolean, nullable=False, server_default=true())
Column(Integer, server_onupdate=FetchedValue(), nullable=False)
+Column(DateTime, server_onupdate="now()")
+Column(DateTime, server_onupdate=text("now()"))
+Column(DateTime, server_onupdate=FetchedValue())
+Column(Boolean, server_onupdate=literal_column("false", Boolean))
+Column(Integer, server_onupdate=literal_column("42", Integer), nullable=False)
# TypeEngine.with_variant should accept both a TypeEngine instance and the Concrete Type
Integer().with_variant(Integer, "mysql")