Изменение внешнего ключа на родительский класс/модель
У меня есть ситуация, когда есть различные сущности с внешними ключами к моделям, которые являются подклассами другой модели. Мне нужно обновить эти FK, чтобы они указывали на родителя, так чтобы любой из различных подклассов мог быть связан.
Например, код может быть таким:
class School(Model):
...
class University(School):
...
class Student(Model):
university = ForeignKey(University)
... и мне нужно изменить этот FK со Student to University на FK to School.
Я думаю, что все университеты будут иметь тот же ID, что и школа, которая находится в базе данных для этого университета. Поэтому безопасно/надежно ли определять Student:
class Student(Model):
university = ForeignKey(University)
school = ForeignKey(School)
Затем сделать миграцию, которая создает новый атрибут school
и использует RunPython для копирования id из university
в school
, затем удалить атрибут university
и сделать миграцию для этого?
Возможно ли, что этот метод может сломаться или выдать плохие данные?