Add more precise RunSQL, RunPython migration hints (#768)

This commit is contained in:
Marti Raudsepp
2021-12-08 14:11:35 +02:00
committed by GitHub
parent 79d34d6f46
commit 6436a10d5a

View File

@@ -1,4 +1,4 @@
from typing import Any, Callable, Dict, Optional, Sequence from typing import Any, Callable, Dict, List, Literal, Mapping, Optional, Sequence, Tuple, Union
from django.db.backends.base.schema import BaseDatabaseSchemaEditor from django.db.backends.base.schema import BaseDatabaseSchemaEditor
from django.db.migrations.state import StateApps from django.db.migrations.state import StateApps
@@ -13,28 +13,28 @@ class SeparateDatabaseAndState(Operation):
) -> None: ... ) -> None: ...
class RunSQL(Operation): class RunSQL(Operation):
noop: str = ... noop: Literal[""] = ...
sql: Any = ... sql: Union[str, List[str], Tuple[str, ...]] = ...
reverse_sql: Any = ... reverse_sql: Optional[Union[str, List[str], Tuple[str, ...]]] = ...
state_operations: Any = ... state_operations: Sequence[Operation] = ...
hints: Any = ... hints: Mapping[str, Any] = ...
def __init__( def __init__(
self, self,
sql: Any, sql: Union[str, List[str], Tuple[str, ...]],
reverse_sql: Optional[Any] = ..., reverse_sql: Optional[Union[str, List[str], Tuple[str, ...]]] = ...,
state_operations: Optional[Any] = ..., state_operations: Sequence[Operation] = ...,
hints: Optional[Any] = ..., hints: Optional[Mapping[str, Any]] = ...,
elidable: bool = ..., elidable: bool = ...,
) -> None: ... ) -> None: ...
class RunPython(Operation): class RunPython(Operation):
code: Callable = ... code: Callable[[StateApps, BaseDatabaseSchemaEditor], None] = ...
reverse_code: Optional[Callable] = ... reverse_code: Optional[Callable[[StateApps, BaseDatabaseSchemaEditor], None]] = ...
hints: Optional[Dict[str, Any]] = ... hints: Optional[Dict[str, Any]] = ...
def __init__( def __init__(
self, self,
code: Callable, code: Callable[[StateApps, BaseDatabaseSchemaEditor], None],
reverse_code: Optional[Callable] = ..., reverse_code: Optional[Callable[[StateApps, BaseDatabaseSchemaEditor], None]] = ...,
atomic: Optional[bool] = ..., atomic: Optional[bool] = ...,
hints: Optional[Dict[str, Any]] = ..., hints: Optional[Dict[str, Any]] = ...,
elidable: bool = ..., elidable: bool = ...,