2017-11-08 13 views
1

はシナリオです:Djangoシェルの中でデータベースからカラムを削除するには?ここ

  • 私はpsqlプロンプトにアクセスすることはできません。
  • 私はpython manage.py shellまたはshell_plus

へのアクセス権を持っていることは、Djangoの内部を使用して、そのデータベースの列を削除することは可能ですか?私はそれが理論上可能であることを知っている。

洞察を歓迎します。

+1

テーブルがあるmodels.pyファイルにアクセスできますか?その後、フィールドを削除して 'python manage.py makemirgrations'、' python manage.py migrate'を実行するだけです。 – Sam

+0

結果を知っていますか? Pythonシェルに列をドロップする目的は何ですか?列をドロップしてもモデル内の対応するフィールドを保持しておけば、後で元に戻って悲鳴を上げるでしょう。 @Samは 'python manage.py makemigrations'と' python manage.py migrate'を提案しています。これには、アプリケーションのデプロイ時に利点があります。マイグレーションからデータベース構造を簡単に生成できます。 – cezar

+0

'python manage.py shell'にアクセスできるなら、' python manage.py dbshel​​l'にアクセスする必要があります。そうでない場合は、最初のものへのアクセスは可能ですが、後のものへのアクセスは可能です。 – cezar

答えて

2

Cecharはpython manage.py dbshellpsqlのようにプロンプ​​トを呼び出すはずだと指摘したので、それは挑戦ではありません。

Djangoはシェルから任意の(生の)SQLを実行できるので、それ以外のものはまだ機能しません。次のスニペットはそれを行う必要があります:

from django.db import connection 
cursor = connection.cursor() 
cursor.execute("alter table table_name DROP column column_name") 
関連する問題