Django: внешний ключ к многораздельной таблице - PullRequest
0 голосов
/ 12 сентября 2018

Я использовал architect для разбиения существующей таблицы.

@architect.install('partition', type='range', subtype='integer', constraint='100', column='id')
class Project(models.Model):
    name = models.CharField(max_length=150)

Модель проекта использовалась как внешний ключ для другой модели.

class ProjectChangeLog(models.Model):
    project = models.ForeignKey(Project, on_delete=models.CASCADE)

После разбиения я не смог добавить объекты ProjectChangeLog. Там написано:

IntegrityError: insert or update on table "logging_projectchangelog" violates foreign key constraint 
DETAIL:  Key (project_id)=(231) is not present in table "project_project"

1 Ответ

0 голосов
/ 15 января 2019

Одним из ограничений разделов является то, что на них не должно быть внешних ключей.Одним из способов решения этой проблемы является использование пользовательских ограничений для имитации поведения ForeignKey.Этот метод может вам помочь.

...