diff --git a/django-stubs/contrib/postgres/operations.pyi b/django-stubs/contrib/postgres/operations.pyi index 94fb10a..b901495 100644 --- a/django-stubs/contrib/postgres/operations.pyi +++ b/django-stubs/contrib/postgres/operations.pyi @@ -1,9 +1,17 @@ +from typing import Dict, Literal, Tuple + +from django.db.backends.base.schema import BaseDatabaseSchemaEditor +from django.db.migrations import AddConstraint, AddIndex, RemoveIndex from django.db.migrations.operations.base import Operation class CreateExtension(Operation): reversible: bool = ... name: str = ... def __init__(self, name: str) -> None: ... + def extension_exists(self, schema_editor: BaseDatabaseSchemaEditor, extension: str) -> bool: ... + +class BloomExtension(CreateExtension): + def __init__(self) -> None: ... class BtreeGinExtension(CreateExtension): def __init__(self) -> None: ... @@ -25,3 +33,30 @@ class TrigramExtension(CreateExtension): class UnaccentExtension(CreateExtension): def __init__(self) -> None: ... + +class NotInTransactionMixin: + def _ensure_not_in_transaction(self, schema_editor: BaseDatabaseSchemaEditor) -> None: ... + +class AddIndexConcurrently(NotInTransactionMixin, AddIndex): + atomic: Literal[False] = ... + +class RemoveIndexConcurrently(NotInTransactionMixin, RemoveIndex): + atomic: Literal[False] = ... + +class CollationOperation(Operation): + name: str + locale: str + provider: str + deterministic: bool + def __init__(self, name: str, locale: str, *, provider: str = ..., deterministic: bool = ...) -> None: ... + def create_collation(self, schema_editor: BaseDatabaseSchemaEditor) -> None: ... + def remove_collation(self, schema_editor: BaseDatabaseSchemaEditor) -> None: ... + +class CreateCollation(CollationOperation): ... +class RemoveCollation(CollationOperation): ... +class AddConstraintNotValid(AddConstraint): ... + +class ValidateConstraint(Operation): + model_name: str + name: str + def __init__(self, model_name: str, name: str) -> None: ... diff --git a/django-stubs/db/migrations/operations/base.pyi b/django-stubs/db/migrations/operations/base.pyi index 29e273a..2896df3 100644 --- a/django-stubs/db/migrations/operations/base.pyi +++ b/django-stubs/db/migrations/operations/base.pyi @@ -25,3 +25,5 @@ class Operation: def references_field(self, model_name: str, name: str, app_label: str) -> bool: ... def allow_migrate_model(self, connection_alias: Union[BaseDatabaseWrapper, str], model: Type[Model]) -> bool: ... def reduce(self, operation: Operation, app_label: str) -> Union[bool, List[Operation]]: ... + @property + def migration_name_fragment(self) -> str: ...