diff --git a/alembic/ddl/base.py b/alembic/ddl/base.py index ad2847eb..48ae50d9 100644 --- a/alembic/ddl/base.py +++ b/alembic/ddl/base.py @@ -29,14 +29,14 @@ from sqlalchemy import Identity from sqlalchemy.sql.compiler import Compiled from sqlalchemy.sql.compiler import DDLCompiler + from sqlalchemy.sql.elements import ColumnElement from sqlalchemy.sql.elements import TextClause - from sqlalchemy.sql.functions import Function from sqlalchemy.sql.schema import FetchedValue from sqlalchemy.sql.type_api import TypeEngine from .impl import DefaultImpl -_ServerDefault = Union["TextClause", "FetchedValue", "Function[Any]", str] +_ServerDefault = Union["FetchedValue", str, "TextClause", "ColumnElement[Any]"] class AlterTable(DDLElement): diff --git a/alembic/op.pyi b/alembic/op.pyi index 8cdf7590..bfaff1a1 100644 --- a/alembic/op.pyi +++ b/alembic/op.pyi @@ -29,6 +29,7 @@ if TYPE_CHECKING: from sqlalchemy.sql.expression import TableClause from sqlalchemy.sql.schema import Column from sqlalchemy.sql.schema import Computed + from sqlalchemy.sql.schema import FetchedValue from sqlalchemy.sql.schema import Identity from sqlalchemy.sql.schema import SchemaItem from sqlalchemy.sql.schema import Table @@ -154,14 +155,12 @@ def alter_column( *, nullable: Optional[bool] = None, comment: Union[str, Literal[False], None] = False, - server_default: Union[ - str, bool, Identity, Computed, TextClause, None - ] = False, + server_default: Union["FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False]] = False, new_column_name: Optional[str] = None, type_: Union[TypeEngine[Any], Type[TypeEngine[Any]], None] = None, existing_type: Union[TypeEngine[Any], Type[TypeEngine[Any]], None] = None, existing_server_default: Union[ - str, bool, Identity, Computed, TextClause, None + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] ] = False, existing_nullable: Optional[bool] = None, existing_comment: Optional[str] = None, diff --git a/alembic/operations/base.py b/alembic/operations/base.py index 26c32724..042415e6 100644 --- a/alembic/operations/base.py +++ b/alembic/operations/base.py @@ -45,6 +45,7 @@ from sqlalchemy.sql.expression import TextClause from sqlalchemy.sql.schema import Column from sqlalchemy.sql.schema import Computed + from sqlalchemy.sql.schema import FetchedValue from sqlalchemy.sql.schema import Identity from sqlalchemy.sql.schema import SchemaItem from sqlalchemy.types import TypeEngine @@ -711,7 +712,7 @@ def alter_column( nullable: Optional[bool] = None, comment: Union[str, Literal[False], None] = False, server_default: Union[ - str, bool, Identity, Computed, TextClause, None + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] ] = False, new_column_name: Optional[str] = None, type_: Union[TypeEngine[Any], Type[TypeEngine[Any]], None] = None, @@ -719,7 +720,7 @@ def alter_column( TypeEngine[Any], Type[TypeEngine[Any]], None ] = None, existing_server_default: Union[ - str, bool, Identity, Computed, TextClause, None + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] ] = False, existing_nullable: Optional[bool] = None, existing_comment: Optional[str] = None, @@ -1678,14 +1679,16 @@ def alter_column( *, nullable: Optional[bool] = None, comment: Union[str, Literal[False], None] = False, - server_default: Any = False, + server_default: Union[ + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] + ] = False, new_column_name: Optional[str] = None, type_: Union[TypeEngine[Any], Type[TypeEngine[Any]], None] = None, existing_type: Union[ TypeEngine[Any], Type[TypeEngine[Any]], None ] = None, existing_server_default: Union[ - str, bool, Identity, Computed, None + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] ] = False, existing_nullable: Optional[bool] = None, existing_comment: Optional[str] = None, diff --git a/alembic/operations/batch.py b/alembic/operations/batch.py index fe183e9c..3463098e 100644 --- a/alembic/operations/batch.py +++ b/alembic/operations/batch.py @@ -43,9 +43,11 @@ from sqlalchemy.engine import Dialect from sqlalchemy.sql.elements import ColumnClause + from sqlalchemy.sql.elements import ColumnElement + from sqlalchemy.sql.elements import TextClause from sqlalchemy.sql.elements import quoted_name - from sqlalchemy.sql.functions import Function from sqlalchemy.sql.schema import Constraint + from sqlalchemy.sql.schema import FetchedValue from sqlalchemy.sql.type_api import TypeEngine from ..ddl.impl import DefaultImpl @@ -485,7 +487,9 @@ def alter_column( table_name: str, column_name: str, nullable: Optional[bool] = None, - server_default: Optional[Union[Function[Any], str, bool]] = False, + server_default: Union[ + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] + ] = False, name: Optional[str] = None, type_: Optional[TypeEngine] = None, autoincrement: Optional[Union[bool, Literal["auto"]]] = None, diff --git a/alembic/operations/ops.py b/alembic/operations/ops.py index c9b1526b..7b678a2e 100644 --- a/alembic/operations/ops.py +++ b/alembic/operations/ops.py @@ -43,6 +43,7 @@ from sqlalchemy.sql.schema import Constraint from sqlalchemy.sql.schema import ForeignKeyConstraint from sqlalchemy.sql.schema import Identity + from sqlalchemy.sql.schema import FetchedValue from sqlalchemy.sql.schema import Index from sqlalchemy.sql.schema import MetaData from sqlalchemy.sql.schema import PrimaryKeyConstraint @@ -1696,7 +1697,9 @@ def __init__( *, schema: Optional[str] = None, existing_type: Optional[Any] = None, - existing_server_default: Any = False, + existing_server_default: Union[ + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] + ] = False, existing_nullable: Optional[bool] = None, existing_comment: Optional[str] = None, modify_nullable: Optional[bool] = None, @@ -1856,7 +1859,7 @@ def alter_column( nullable: Optional[bool] = None, comment: Optional[Union[str, Literal[False]]] = False, server_default: Union[ - str, bool, Identity, Computed, TextClause, None + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] ] = False, new_column_name: Optional[str] = None, type_: Optional[Union[TypeEngine[Any], Type[TypeEngine[Any]]]] = None, @@ -1864,7 +1867,7 @@ def alter_column( Union[TypeEngine[Any], Type[TypeEngine[Any]]] ] = None, existing_server_default: Union[ - str, bool, Identity, Computed, TextClause, None + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] ] = False, existing_nullable: Optional[bool] = None, existing_comment: Optional[str] = None, @@ -1980,14 +1983,16 @@ def batch_alter_column( *, nullable: Optional[bool] = None, comment: Optional[Union[str, Literal[False]]] = False, - server_default: Any = False, + server_default: Union[ + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] + ] = False, new_column_name: Optional[str] = None, type_: Optional[Union[TypeEngine[Any], Type[TypeEngine[Any]]]] = None, existing_type: Optional[ Union[TypeEngine[Any], Type[TypeEngine[Any]]] ] = None, - existing_server_default: Optional[ - Union[str, bool, Identity, Computed] + existing_server_default: Union[ + "FetchedValue", str, "TextClause", "ColumnElement[Any]", None, Literal[False] ] = False, existing_nullable: Optional[bool] = None, existing_comment: Optional[str] = None,