1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

DjangoMigration - テーブル削除

Last updated at Posted at 2019-07-10

Djangoマイグレーション操作

Djangonoのマイグレーションを利用した、テーブル削除。
こちらの適用がされている前提。

事前チェック

行わなくても良い。
削除作業を行う前の事前チェック。

マイグレーションに変更はないか

python manage.py makemigrations

マイグレーションの履歴を確認。

python manage.py showmigrations

テーブルの削除

以下のモデルが存在し、対応したテーブルがあるとして。

models.py
from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

1.モデル修正

削除したいテーブルが記述されている箇所を削除。
削除の結果は以下。

models.py
from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

2.マイグレート

マイグレートファイルを生成して、マイグレートを行うとテーブルが削除されている。

python manage.py makemigrations web
python manage.py migrate

注意点

Choiceテーブルのみ削除しようとすると、外部キーの関係上エラーが発生する。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?