Djangoアプリを完全にアンインストールし、データベースを削除する手順は何ですか?
db.sqlite3、そしてから削除INSTALLED_APPSでsettings.py?
Djangoアプリを完全にアンインストールし、データベースを削除する手順は何ですか?
db.sqlite3、そしてから削除INSTALLED_APPSでsettings.py?
回答:
Django <1.7には、アプリのすべてのテーブルを削除するために必要なSQLを提供する便利な管理コマンドがあります。詳細については、sqlclear docsを参照してください。基本的に、実行./manage.py sqlclear my_app_nameすると、DB内のアプリのすべてのトレースを取り除くために実行する必要があるSQLステートメントが取得されます。これらのステートメントを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も自動的に実行されます。
sqlclearDjango 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.pyadmin.pyurls.py不要なアプリのすべてのリンクを削除しますpython manage.py migrateそしてpython manage.py syncdbdjangoアプリは* .pyファイルの「セット」であり、django-app-nameを持つディレクトリです。したがって、すべての* .pyファイルを含むフォルダ全体を削除するだけです。
DBからテーブルを「削除」するには、使用する必要があります DELETE FROM <app-name_table-names>
さらに、ルートディレクトリのsetting.pyからapp-nameを含む行を削除する必要があります
私のコンテキストでは、プロジェクトは複数回存在します。私には開発システムがあり、一部のチームメイトには開発システムがあります。顧客用のステージングシステムと本番システムがあります。これは、SQLコマンドを手動で実行したくないことを意味します。自動化してほしい。
目標:アプリとすべてのデータベーステーブルを削除します。
フォルダ「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」ファイルに残します。
すべてのプロジェクトを更新します。チームの仲間にプロジェクトを更新し、移行を実行するように伝えます。
ここで、settings.pyから「my_app_to_remove」を削除して、再度デプロイします。