1
はシナリオです:Djangoシェルの中でデータベースからカラムを削除するには?ここ
- 私は
psql
プロンプトにアクセスすることはできません。 - 私は
python manage.py shell
またはshell_plus
へのアクセス権を持っていることは、Djangoの内部を使用して、そのデータベースの列を削除することは可能ですか?私はそれが理論上可能であることを知っている。
洞察を歓迎します。
はシナリオです:Djangoシェルの中でデータベースからカラムを削除するには?ここ
psql
プロンプトにアクセスすることはできません。python manage.py shell
またはshell_plus
へのアクセス権を持っていることは、Djangoの内部を使用して、そのデータベースの列を削除することは可能ですか?私はそれが理論上可能であることを知っている。
洞察を歓迎します。
Cecharはpython manage.py dbshell
がpsql
のようにプロンプトを呼び出すはずだと指摘したので、それは挑戦ではありません。
Djangoはシェルから任意の(生の)SQLを実行できるので、それ以外のものはまだ機能しません。次のスニペットはそれを行う必要があります:
from django.db import connection
cursor = connection.cursor()
cursor.execute("alter table table_name DROP column column_name")
テーブルがあるmodels.pyファイルにアクセスできますか?その後、フィールドを削除して 'python manage.py makemirgrations'、' python manage.py migrate'を実行するだけです。 – Sam
結果を知っていますか? Pythonシェルに列をドロップする目的は何ですか?列をドロップしてもモデル内の対応するフィールドを保持しておけば、後で元に戻って悲鳴を上げるでしょう。 @Samは 'python manage.py makemigrations'と' python manage.py migrate'を提案しています。これには、アプリケーションのデプロイ時に利点があります。マイグレーションからデータベース構造を簡単に生成できます。 – cezar
'python manage.py shell'にアクセスできるなら、' python manage.py dbshell'にアクセスする必要があります。そうでない場合は、最初のものへのアクセスは可能ですが、後のものへのアクセスは可能です。 – cezar