/ / Створення міграцій для програми auth у django - python, django, migration, django-south

Створення міграцій для auth app в django - python, django, migration, django-south

Мені потрібно додати пару полів до групової моделі в джанго contrib.auth додаток за допомогою:

field_name = models.CharField(...)
field_name.contribute_to_class(Group, "field_name")

Моя проблема полягає в створенні міграцій ізПівдень, оскільки вони створені в каталозі "міграції" всередині програми auth, і, оскільки система вже випускається, мені не дозволяється змінювати поточну установку django на сервері для міграції auth.

Хтось знає, як створити та завантажити такі міграції?

Заздалегідь дякую за вашу допомогу.

Відповіді:

3 для відповіді № 1

Джанго не дає змоги змінювати стандартні моделі особливо просто. Я б не рекомендував вам підклас Group, тому що це дуже дратує отримати вбудований функціонал для посилання на нову модель.

Звичайне, що тут потрібно зробити - це створити GroupProfile модель, яка має Group як унікальний закордонний ключ. Це може бути не елегантно, але у нього не буде величезних витрат на технічне обслуговування, що поставляється із розщепленням вихідного коду Django.

Також: якщо ви не можете змінити код Django на сервері, ви не зможете зробити це за допомогою сирого хакерства SQL або розумної міграції. Південь не буде проблемою - проблема полягає в тому, що Django ORM помітить, що в таблиці SQL є поля, які не вказані в коді, і це призведе до того, що він викине виняток.


0 для відповіді № 2

Оскільки ви використовуєте хак для виправлення моделі, я думаю, ви повинні написати міграцію вручну. Спробуйте скопіювати іншу міграцію та змінити add_column і models по-перше, якщо це не вдасться - завжди є варіант з назвою "raw sql" :)