1. ホーム
  2. django

[解決済み] Django: Django のアプリを完全にアンインストールするには?

2022-06-10 15:04:34

質問

Django アプリを完全にアンインストールし、データベースを削除する手順は何ですか?

どのように解決するのですか?

  1. Django < 1.7 には便利な管理コマンドがあり、アプリの全テーブルを削除するために必要な SQL を与えてくれます。を参照してください。 sqlclear ドキュメント を参照してください。基本的には ./manage.py sqlclear my_app_name を実行すると、DB内のアプリの痕跡をすべて消すために実行すべきSQL文が得られます。それでも、これらの文を SQL クライアントにコピー&ペースト (またはパイプ) する必要があります。Django 1.7 以降では、以下のようにします。 ./manage.py migrate my_app_name zero を使います ( マイグレート 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 # print(f"deleting {c}") # for Python 3.6+
        c.delete()