Django: Как полностью удалить приложение Django? - PullRequest
87 голосов
/ 25 июля 2010

Какова процедура полного удаления приложения Django с удалением базы данных?

Ответы [ 4 ]

130 голосов
/ 26 июля 2010
  1. У Django <1.7 есть удобная команда управления, которая даст вам необходимый SQL, чтобы отбросить все таблицы для приложения.См. <a href="http://docs.djangoproject.com/en/dev/ref/django-admin/?from=olddocs#sqlclear-appname-appname" rel="noreferrer"> sqlclear docs для получения дополнительной информации.По сути, запуск ./manage.py sqlclear my_app_name позволяет получить операторы SQL, которые должны быть выполнены, чтобы избавиться от всех следов приложения в вашей БД.Вам все еще нужно скопировать и вставить (или передать) эти операторы в ваш клиент SQL.Для Django 1.7 и выше используйте ./manage.py migrate my_app_name zero (см. migrate docs), который автоматически выполняет очистку базы данных.

  2. Чтобы удалить приложение из вашего проекта,все, что вам нужно сделать, это удалить его из INSTALLED_APPS в settings.py вашего проекта.Django больше не будет загружать приложение.

  3. Если вы больше не хотите, чтобы файлы приложения зависали, удалите каталог приложения из каталога вашего проекта или другого места на вашей PYTHONPATH, где оно находится.

  4. (необязательно) Если приложение где-то хранит мультимедийные файлы, файлы кэша или другие временные файлы, вы можете также удалить их.Также будьте осторожны с длительными данными сеанса, которые могут остаться в приложении.

  5. (необязательно). Я бы также удалил все устаревшие типы контента.

Вот так.

from django.contrib.contenttypes.models import ContentType
for c in ContentType.objects.all():
    if not c.model_class():
        print "deleting %s"%c
        c.delete()
10 голосов
/ 18 августа 2016
  1. комментарий settings.py в INSTALLED_APPS ненужной строке приложения
  2. удалить все папки __pycache__ и migrate в вашем проекте
  3. удалить ненужную модель в models.py
  4. удалить все импорт ссылка в views.py, admin.py конец и т. Д.
  5. удалить все ссылки в urls.py на ненужных приложениях
  6. в базе данных удалить ненужные таблицы, связанные с приложением (я делаю это с помощью программы помощи "Valentina Studio")
  7. удалить папку приложения
  8. в командной строке сделайте это: python manage.py migrate и python manage.py syncdb
2 голосов
/ 11 апреля 2018

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

Возможно, его нужно адаптировать в двух обновлениях кода - но выглядит действительно безопасным, когда вам приходится работать со многими развертываниями (например, этап тестирования, бета-версия и производство - в моем случае)

2 голосов
/ 25 июля 2010

Приложение django представляет собой «набор» * .py файлов и каталог с именем django-app. Таким образом, вы можете просто удалить всю папку со всеми * .py файлами

Чтобы «удалить» таблицы из БД, вы должны использовать DELETE FROM <app-name_table-names>

Кроме того, вы должны удалить строки с именем приложения из setting.py в корневом каталоге

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...