質問: わからないこと ------- django で migrations でファイルを生成してから、migrate を実行して、カラムの変更をしたかったため、再度 models.py を編集して migrate を試したところ > > django.db.utils.InternalError: (1813, "Tablespace '`hoge`.`users`' exists.") > > > テーブルが既に存在するとエラーになる 試したこと ----- ``` $ python manage.py makemigrations このコマンドでmigrations処理が残っていないか確認 $ python manage.py showmigrations 履歴を確認 hoge [X] 0001_initial ←migrate 済みの×が付いている $ python manage.py migrate --fake hoge zero このコマンドで hoge [] 0001_initial ←migrate 済みの×を消した $ find . -path "*/migrations/*.py" -not -name "__init__.py" -delete $ find . -path "*/migrations/*.pyc" -delete migrationファイルの削除 $ python manage.py makemigrations 再度 migrationファイルを生成 $ python manage.py migrate このコマンドを実行すると、既にテーブルがあるとエラーになる ``` DB内のテーブルを手動で削除して、もう一度上の手順を実行しても同じくテーブルは既に存在するエラーになりました。 どなたかわかるかたご教示お願い致します。
回答: > > django で migrations でファイルを生成してから、migrate を実行して、カラムの変更をしたかったため、再度 models.py を編集して migrate を試したところ > > > そもそも手順が誤っています。マイグレーションは、データベースに反映した後は基本的に**変更・削除してはいけません**。 マイグレーションで作成したデータベースを変更したい場合、**新たなマイグレーションを作成して**行ってください。