Поддержание целостности типа контента pk в развертывании Django - PullRequest
2 голосов
/ 13 апреля 2010

Когда вы запускаете syncdb в Django, первичные ключи типов контента будут пересчитаны. Если я создаю новые модели, при следующем запуске syncdb первичные ключи типов контента будут другими.

Если у меня запущено приложение в рабочей среде, как я могу обновить базу данных новыми моделями и сохранить целостность содержимого типа pks?

Ответы [ 2 ]

2 голосов
/ 13 апреля 2010

Запуск syncdb не обновляет существующие значения ContentType - они хранятся в базе данных и не изменяются. Таким образом, отношения, которые зависят от них, не будут затронуты.

Вновь определенные модели, однако, получат новые значения ContentType при запуске syncdb, и в настоящее время нет способа заранее определить, какими они будут. Как указывает Людвик, эта проблема решена в 1.2.

1 голос
/ 13 апреля 2010

Проблема решена в Django 1.2 (который должен выйти через две недели) с помощью натуральных ключей .

...