Django : Django 앱을 완전히 제거하는 방법은 무엇입니까?
Django 앱을 완전히 제거하고 데이터베이스 제거를 완료하는 절차는 무엇입니까?
Django <1.7에는 앱의 모든 테이블을 삭제하는 데 필요한 SQL을 제공하는 편리한 관리 명령이 있습니다. 자세한 정보는 sqlclear 문서 를 참조하십시오. 기본적으로 실행
./manage.py sqlclear my_app_name
하면 DB에서 앱의 모든 흔적을 제거하기 위해 실행해야하는 SQL 문을 얻을 수 있습니다. 여전히 해당 명령문을 SQL 클라이언트에 복사하여 붙여 넣어야합니다 (또는 파이프). Django 1.7 이상 에서는 데이터베이스 정리를 자동으로 실행하는 ( migration 문서./manage.py migrate my_app_name zero
참조 )를 사용 하십시오 .프로젝트에서 앱을 제거하려면
INSTALLED_APPS
프로젝트의settings.py
. Django는 더 이상 앱을로드하지 않습니다.앱의 파일이 더 이상 사용되지 않도록하려면 프로젝트 디렉터리 또는 파일이있는 PYTHONPATH의 다른 위치에서 앱 디렉터리를 삭제하십시오.
(선택 사항) 앱이 미디어 파일, 캐시 파일 또는 기타 임시 파일을 어딘가에 저장 한 경우 해당 파일도 삭제할 수 있습니다. 또한 앱에서 남을 수있는 느린 세션 데이터에주의하십시오.
(선택 사항) 오래된 콘텐츠 유형도 제거합니다.
그렇게.
from django.contrib.contenttypes.models import ContentType
for c in ContentType.objects.all():
if not c.model_class():
print "deleting %s"%c
c.delete()
- 에 주석
settings.py
에서INSTALLED_APPS
불필요한 응용 프로그램의 라인 - 모든 폴더
__pycache__
및migrate
프로젝트 삭제 - 불필요한 모델 삭제
models.py
- , end 등의 모든 가져 오기 링크를 삭제하십시오 .
views.py
admin.py
urls.py
불필요한 앱의 모든 링크를 삭제하십시오.- 데이터베이스에서 앱과 관련된 불필요한 테이블을 삭제합니다 (도움말 프로그램 "Valentina Studio"를 사용하여 수행합니다).
- 앱 폴더 삭제
- 명령 줄에서 그것을 수행
python manage.py migrate
하고python manage.py syncdb
django 앱은 * .py 파일의 "세트"이며 django-app-name이있는 디렉토리입니다. 따라서 모든 * .py 파일이있는 전체 폴더를 간단히 삭제할 수 있습니다.
DB에서 테이블을 "제거"하려면 다음을 사용해야합니다. DELETE FROM <app-name_table-names>
또한 루트 디렉터리의 setting.py에서 app-name과 같은 줄을 삭제해야합니다.
이 기사의 단계를 정말 좋아합니다 . 여기에는 마이그레이션 지원 이 포함됩니다 .
두 번의 코드 업데이트로 조정해야 할 수도 있습니다.하지만 많은 배포 (예 : 테스트 단계, 베타 버전 및 프로덕션-제 경우)로 작업해야 할 때 정말 안전 해 보입니다.
제 맥락에서 프로젝트는 여러 번 존재합니다. 저는 개발 시스템이 있고, 일부 팀원에게는 개발 시스템이 있으며, 고객을위한 스테이징 시스템과 프로덕션 시스템이 있습니다. 이것은 손으로 SQL 명령을 실행하고 싶지 않다는 것을 의미합니다. 자동화되기를 바랍니다.
목표 : 앱과 모든 데이터베이스 테이블을 제거합니다.
1 단계 : 앱을 비우고 설치된 상태로 둡니다.
"migrations"폴더를 제외한 모든 파일을 앱에서 제거합니다.
다음 명령을 실행하십시오. manage.py makemigrations -n drop_all_tables my_app_to_remove
이제 디렉토리는 다음과 같습니다.
my_app_to_remove/
my_app_to_remove/__init__.py
my_app_to_remove/migrations
my_app_to_remove/migrations/0001_initial.py
my_app_to_remove/migrations/....
my_app_to_remove/migrations/0030_drop_all_tables.py
my_app_to_remove/migrations/__init__.py
my_app_to_remove
"settings.py"파일을 그대로 둡니다 .
2 단계 : 변경 사항 배포
모든 프로젝트를 업데이트하십시오. 팀 동료에게 프로젝트를 업데이트하고 마이그레이션을 실행하도록 지시하십시오.
3 단계 : settings.py에서 "my_app_to_remove"제거
이제 settings.py에서 "my_app_to_remove"를 제거하고 다시 배포하십시오.
참고 URL : https://stackoverflow.com/questions/3329773/django-how-to-completely-uninstall-a-django-app
'Programming' 카테고리의 다른 글
스택이나 재귀를 사용하지 않고 Morris inorder tree traversal을 설명하십시오. (0) | 2020.08.23 |
---|---|
uint_fast32_t는 무엇이며 일반 int 및 uint32_t 대신 사용해야하는 이유는 무엇입니까? (0) | 2020.08.23 |
해시를 위해 소금을 숨길 필요성 (0) | 2020.08.23 |
CSS : 특정 요소에 콘텐츠를 추가하지 않은 후 (0) | 2020.08.23 |
Class.forName () 대 ClassLoader.loadClass ()-동적 로딩에 사용할 것은 무엇입니까? (0) | 2020.08.23 |