Timemo

とある高専生のメモ置き場

【Django】データベースのリセット&db.sqlite3が削除できないときの対処法

 

どうも。へんじにゃ@hengin_blogです。

Djangoでエラーが治りそうに無く、データベースをリセットしたいときの手順と、なかなかデータベースが削除できなかったときの対処法を書いていきます。

データベースをリセットしたい

データベースをリセットするには以下のようにしていくと良いです

  1. migrationsディレクトリを削除(手動でもコマンドでも
  2. データベースを削除(今回はdb.sqlite3を削除
  3. マイグレーションを行う
  4. 管理ユーザーを再作成

これらが一連の流れです。

リセットしたい(コマンド)

cd [app名]
rm -d -r migrations/
cd [project名]
rm -d -r db.sqlite3

これでmigrationsファイルの中身とデータベースの消去が出来ました!

ちなみに[]で囲っている部分は任意の名前を入力してください。

次に再マイグレーションしていきます。

python manage.py makemigrations [app名]

python manage.py migrate

これで再マイグレーションは完了しましたので、次に管理ユーザーを作成します。

データベースを吹き飛ばしたため、管理ユーザーのデータも無くなっているためです。

python manage.py createsuperuser

この後は任意のユーザー名と必要であればメールアドレス、そしてパスワードを忘れないように気をつけて下さい!

db.sqlite3(データベース)が削除できない

手順のようにスムーズに行けば良いのですが、私の場合、db.sqlite3を削除しようとするとエラーが表示されて苦しんだので、そのような方には以下の点をチェックして頂きたいです。

「runserverしっぱなしの状態でないか?」

詳しくは存じ上げませんが、runserverを終了した後に削除するとスムーズにできたので、恐らくデータベースを使用している間の削除はできないものかと思われます。

取り敢えず、データベースが削除できない場合にローカルサーバーを終了してみて下さい!!

まとめ

結局データベースがなかなか削除できなかった理由は分かりませんでしたが、解決できたのでヨシ!!

Django以前の知識が少ないせいか、なかなか上手くいきませんが、なんやかんやDjangoは面白いので、大量のエラーにめげずにがんばろっかな。

 

参考になったら読者登録よろしくお願いいたします!!
読者登録返しします!!