удалите это имя приложения из установленных приложений settings.py, а затем удалите любую ссылку на это приложение из основного файла urls.py. Тогда вы можете безопасно удалить это приложение
Aseem
Если вы в разработке с использованием SQLite , и вы не против перезагрузки базы данных, это хорошо , чтобы просто удалить папку приложения и db.sqlite3, и удалить его из INSTALLED_APPSв settings.py?
Кевин
Ответы:
150
В Django <1.7 есть удобная команда управления, которая предоставит вам SQL, необходимый для удаления всех таблиц для приложения. Дополнительную информацию см. В документации sqlclear . По сути, при запуске ./manage.py sqlclear my_app_nameвы получаете операторы SQL, которые должны выполняться, чтобы избавиться от всех следов приложения в вашей БД. Вам все равно нужно скопировать и вставить (или передать) эти операторы в свой SQL-клиент. Для Django 1.7 и выше используйте ./manage.py migrate my_app_name zero(см. Документацию по миграции ), которая автоматически запускает очистку базы данных.
Чтобы удалить приложение из проекта, все, что вам нужно сделать, это удалить его из INSTALLED_APPSфайла проекта settings.py. Django больше не загружает приложение.
Если вы больше не хотите, чтобы файлы приложения зависали, удалите каталог приложения из каталога проекта или из другого места на PYTHONPATH, где он находится.
(необязательно) Если приложение где-то хранило файлы мультимедиа, файлы кэша или другие временные файлы, вы можете также удалить их. Также будьте осторожны с устаревшими данными сеанса, которые могут остаться в приложении.
(необязательно) Я бы также удалил все устаревшие типы контента.
Вот так.
from django.contrib.contenttypes.models importContentTypefor c inContentType.objects.all():ifnot c.model_class():print"deleting %s"%c # print(f"deleting {c}") # for Python 3.6+
c.delete()
Если удаляемое приложение имеет миграции, от которых зависят миграции других приложений, система миграции выйдет из строя, когда обнаружит, что эти зависимые миграции больше не существуют. Будьте осторожны при использовании приведенного выше ответа, если удаляемое приложение является зависимостью в истории миграции другого из ваших приложений.
Приложение django - это «набор» файлов * .py и каталога с именем django-app-name. Таким образом, вы можете просто удалить всю папку со всеми файлами * .py
Для «удаления» таблиц из БД следует использовать DELETE FROM <app-name_table-names>
Кроме того, вам необходимо удалить строки с именем приложения из файла setting.py в корневом каталоге.
Предполагая, что вы не используете базу данных с другим приложением, вы можете просто удалить базу данных с именем в settings.py.
joel3000
у каждого приложения есть собственная база данных - неплохо
V-Light
3
@ V-Light у каждого приложения своя таблица, и у каждого проекта своя база данных.
Алиреза Саванд 02
3
В моем контексте проекты существуют несколько раз: у меня есть система разработки, у некоторых товарищей по команде есть система разработки, есть промежуточная система для заказчика и производственная система. Это означает, что я не хочу выполнять команды sql вручную. Я хочу, чтобы это было автоматизировано.
Цель: удалить приложение и все таблицы базы данных.
Шаг 1. Очистите приложение, но оставьте его установленным
удалите все файлы из приложения, кроме папки "миграции"
Выполните эту команду: manage.py makemigrations -n drop_all_tables my_app_to_remove
Мне очень нравятся шаги из этой статьи - она включает поддержку миграции .
Возможно, его нужно адаптировать в двух обновлениях кода, но выглядит действительно безопасным, когда вам нужно работать со многими развертываниями (например: этап тестирования, версия BETA и производство - в моем случае)
db.sqlite3
, и удалить его изINSTALLED_APPS
вsettings.py
?Ответы:
В Django <1.7 есть удобная команда управления, которая предоставит вам SQL, необходимый для удаления всех таблиц для приложения. Дополнительную информацию см. В документации sqlclear . По сути, при запуске
./manage.py sqlclear my_app_name
вы получаете операторы SQL, которые должны выполняться, чтобы избавиться от всех следов приложения в вашей БД. Вам все равно нужно скопировать и вставить (или передать) эти операторы в свой SQL-клиент. Для Django 1.7 и выше используйте./manage.py migrate my_app_name zero
(см. Документацию по миграции ), которая автоматически запускает очистку базы данных.Чтобы удалить приложение из проекта, все, что вам нужно сделать, это удалить его из
INSTALLED_APPS
файла проектаsettings.py
. Django больше не загружает приложение.Если вы больше не хотите, чтобы файлы приложения зависали, удалите каталог приложения из каталога проекта или из другого места на PYTHONPATH, где он находится.
(необязательно) Если приложение где-то хранило файлы мультимедиа, файлы кэша или другие временные файлы, вы можете также удалить их. Также будьте осторожны с устаревшими данными сеанса, которые могут остаться в приложении.
(необязательно) Я бы также удалил все устаревшие типы контента.
Вот так.
источник
./manage.py migrate my_app_name zero
. И он также автоматически выполнит SQL.sqlclear
был удален в Django 1.9, поэтому этот ответ подходит только для предыдущих версий. См .: docs.djangoproject.com/en/1.10/releases/1.9/…include("appname.urls")
urls.py
settings.py
вINSTALLED_APPS
ненужной строке приложения__pycache__
иmigrate
в вашем проектеmodels.py
views.py
,admin.py
конец и т. д.urls.py
ненужных приложенияхpython manage.py migrate
иpython manage.py syncdb
источник
Приложение django - это «набор» файлов * .py и каталога с именем django-app-name. Таким образом, вы можете просто удалить всю папку со всеми файлами * .py
Для «удаления» таблиц из БД следует использовать
DELETE FROM <app-name_table-names>
Кроме того, вам необходимо удалить строки с именем приложения из файла setting.py в корневом каталоге.
источник
В моем контексте проекты существуют несколько раз: у меня есть система разработки, у некоторых товарищей по команде есть система разработки, есть промежуточная система для заказчика и производственная система. Это означает, что я не хочу выполнять команды sql вручную. Я хочу, чтобы это было автоматизировано.
Цель: удалить приложение и все таблицы базы данных.
Шаг 1. Очистите приложение, но оставьте его установленным
удалите все файлы из приложения, кроме папки "миграции"
Выполните эту команду:
manage.py makemigrations -n drop_all_tables my_app_to_remove
Каталог теперь выглядит так:
Оставьте
my_app_to_remove
в файле «settings.py».Шаг 2. Разверните изменения
Обновите все проекты. Скажите товарищам по команде, чтобы они обновили свой проект и запустили миграции.
Шаг 3: удалите my_app_to_remove из settings.py
Теперь удалите my_app_to_remove из settings.py и разверните снова.
источник
Мне очень нравятся шаги из этой статьи - она включает поддержку миграции .
Возможно, его нужно адаптировать в двух обновлениях кода, но выглядит действительно безопасным, когда вам нужно работать со многими развертываниями (например: этап тестирования, версия BETA и производство - в моем случае)
источник