Отношения миграции Django
Предположим, что у нас есть две модели, Person и Worker.
Знаете, я хочу изменить имя Person на InterestPerson.
Как Django точно знает, что новое имя принадлежит старому?
Я смотрел в сгенерированных таблицах в DB и в миграциях, но я не могу понять, как он может сделать связь.
То же самое касается полей, типов данных, длин... и т.д.
Если вы переименовываете Person в InterestPerson, вы технически удалили модель под названием Person и добавили новую под названием InterestPerson. Когда Django создает файлы миграции, он итеративно просматривает новые модели и сравнивает их с удаленными моделями, если новая модель похожа (то же определение) на удаленную модель в том же приложении, Django выполняет операцию переименования с базой данных. Django не всегда уверен, что что-то было переименовано, фактически он иногда печатает вопросы в консоли, чтобы выяснить, что/если что-то было переименовано. Взгляните на определение MigrationAutodetector (особенно на функцию generate_renamed_models), которая является кодом, обнаруживающим переименования.