डेटाबेस हटाने के साथ पूरी तरह से एक Django ऐप की स्थापना रद्द करने की प्रक्रिया क्या है?
db.sqlite3
हटाने और , और इसमें से निकालने के लिए ठीक INSTALLED_APPS
है settings.py
?
डेटाबेस हटाने के साथ पूरी तरह से एक Django ऐप की स्थापना रद्द करने की प्रक्रिया क्या है?
db.sqlite3
हटाने और , और इसमें से निकालने के लिए ठीक INSTALLED_APPS
है settings.py
?
जवाबों:
Django <1.7 के पास एक आसान प्रबंधन आदेश है जो आपको एक ऐप के लिए सभी तालिकाओं को छोड़ने के लिए आवश्यक SQL देगा। देखें sqlclear डॉक्स अधिक जानकारी के लिए। असल में, रनिंग ./manage.py sqlclear my_app_name
से आपको एसक्यूएल स्टेटमेंट मिलते हैं, जिन्हें आपके डीबी में ऐप के सभी निशानों से छुटकारा पाने के लिए निष्पादित किया जाना चाहिए। आपको अभी भी उन बयानों को अपने SQL क्लाइंट में कॉपी और पेस्ट (या पाइप) करना होगा। Django 1.7 और ऊपर के लिए, ./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 # print(f"deleting {c}") # for Python 3.6+
c.delete()
./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 फ़ाइलों के साथ पूरे फ़ोल्डर को हटा सकते हैं
DB से तालिकाओं को "हटाने" के लिए आपको उपयोग करना चाहिए DELETE FROM <app-name_table-names>
इसके अलावा, आपको रूट डाइरेक्टरी में सेटिंग व्हाट्स ऐप-नेम से सेटिंग को डिलीट करना होगा
मैं वास्तव में इस लेख के चरणों से प्यार करता हूं - इसमें माइग्रेशन समर्थन शामिल है ।
हो सकता है कि कोड के दो अपडेट में इसे अनुकूलित करने की आवश्यकता हो - लेकिन वास्तव में सुरक्षित दिखता है जब आपको कई तैनाती के साथ काम करना होता है (जैसे: परीक्षण चरण, बीटा संस्करण और उत्पादन - मेरे मामले में)
मेरे संदर्भ में परियोजनाएं कई बार मौजूद हैं: मेरे पास एक विकास प्रणाली है, कुछ टीम के साथियों के पास एक विकास प्रणाली है, ग्राहक के लिए एक मचान प्रणाली और एक उत्पादन प्रणाली है। इसका मतलब है कि मैं हाथ से sql कमांड निष्पादित नहीं करना चाहता। मैं चाहता हूं कि यह स्वचालित हो।
लक्ष्य: एप्लिकेशन और सभी डेटाबेस तालिकाओं को हटा दें।
"माइग्रेशन" फ़ोल्डर को छोड़कर, ऐप से सभी फ़ाइलों को हटा दें
इस आदेश का पालन करें: 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 से "my_app_to_remove" हटाएं और फिर से तैनात करें।