MCPcopy Create free account
hub / github.com/tortoise/tortoise-orm / state_forward

Method state_forward

tortoise/migrations/operations.py:558–577  ·  view source on GitHub ↗
(self, app_label: str, state: State)

Source from the content-addressed store, hash-verified

556 return f"Rename field {self.old_name} to {self.new_name} on {self.model_name}"
557
558 def state_forward(self, app_label: str, state: State) -> None:
559 model_state = self.get_model_state(state, app_label, self.model_name)
560
561 if self.new_name in model_state.fields:
562 raise IncompatibleStateError(
563 f"Field {self.new_name} already present on model {app_label}.{self.model_name}"
564 )
565
566 field = model_state.fields.pop(self.old_name, None)
567 if not field:
568 raise IncompatibleStateError(
569 f"Field {self.old_name} is not present on model {app_label}.{self.model_name}"
570 )
571
572 model_state.fields[self.new_name] = deepcopy(field)
573 models_to_reload = {(app_label, self.model_name)}
574 if isinstance(field, DIRECT_RELATION_FIELDS):
575 models_to_reload.add(state.apps.split_reference(field.model_name))
576
577 state.reload_models(models_to_reload)
578
579 async def database_forward(
580 self,

Callers

nothing calls this directly

Calls 5

get_model_stateMethod · 0.80
addMethod · 0.80
reload_modelsMethod · 0.80
split_referenceMethod · 0.45

Tested by

no test coverage detected