Переименование реляционных таблиц в существующей схеме в Django
В связи с переходом с django 2.x на django 4.x, мне пришлось переименовать свой проект, чтобы исправить первоначальное имя, содержащее '-' и не содержащее '_'.
Первоначальное название проекта было DEMANDE-PROJET
В модели под названием DEMANDE ( DEMANDE-PROJET_DEMANDE ) у меня есть внешний ключ (поле created_by ) к модели под названием UserDemandeMapper
created_by = models.ForeignKey('UserDemandeMapper', related_name="demande_createur",
on_delete=models.SET_NULL, null=True, blank=True)
Django обрабатывает эту таблицу самостоятельно, и в браузере DB я вижу ее под именем DEMANDE-PROJET_USERDEMANDE2573
Теперь я переименовал свой проект, django хочет запросить DEMANDE_PROJET_* вместо DEMANDE-PROJET_*
Я больше не могу ничего запросить.
Я добавил :
class Meta:
db_table = "DEMANDE-PROJET_DEMANDE"
для связи моей модели django с таблицами, которые получают фиксированное имя. И теперь я могу запрашивать Demande без каких-либо проблем.
Проблема возникает из-за моего внешнего ключа created_by. У меня есть значение ID, но нет объекта модели внешней модели.
Я пытался добавить UserDemandeMapper мета-класс с именем db_name, но ничего не получилось.
Поскольку я не специалист по миграции и эта сторона django немного туманна, я хотел бы получить помощь в этом вопросе.
Заранее спасибо.
Дэмиен
Я пытался добавить UserDemandeMapper мета-класс с именем db_name, но ничего не получилось.
Если это не опечатка в вашем вопросе, я предлагаю попробовать db_table вместо db_name, как вы делали это для другого класса:
class UserDemandeMapper(models.Model):
class Meta:
db_table = "DEMANDE-PROJET_USERDEMANDEMAPPER"