0
0

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 3 years have passed since last update.

migrationsディレクトリを削除してデータベースをDropして再作成したのにmakemigrationsするとNo changes detectedになる原因。

Posted at

やりたい事

マイグレーションとデータベースを完全にリセットし、プロジェクトを最初に作成した時のようにmakemigrationsとmigrateを実行したい。

アプリ名を指定しないとmakemigrationsで『No changes detected』になってしまう。

データベースを完全にクリアして各アプリケーション内の__migrations__ディレクトリを丸ごと削除し____pycache____も削除したが、__makemigrations__を実行すると__No changes detected__と出力される。もちろん、ここで__アプリ名を指定してmakemigrations__を実行すると正常にマイグレーションファイルは作成される。

python ./manage.py makemigrations appname

原因

そもそも__migrationsディレクトリ__と内包する____init__.py__を削除してはいけなかった。

解決

migrations__ディレクトリ内の__init__.py__ファイル以外を削除するか、ディレクトリごと削除してから__migrationsディレクトリ__と____init__.py__を作成する事で解決。

rm appname/migrations/*.py
rm appname/migrations/__pycache__/*.pyc
touch appname/migrations/__init__.py
# 私のDBはMySQLです。
cat <<__END_DDL__ | mysql -uroot
DROP DATABASE appname;
CREATE DATABASE appname;
__END_DDL__
python ./manage.py makemigrations
python ./manage.py migrate

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?