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?

【トラブルシューティング】DjangoプロジェクトでPostgreSQLのテーブルを誤って削除してマイグレーションできない対処方法

Last updated at Posted at 2025-05-16

どんな現象?

つい今、カラム名を更新するためにPostgreSQLの対象テーブルを手動で削除した。
理由は、データが2つしか入っていなかったため最初から作り直せば良いや~と思っていたらマイグレーションでに失敗した。

マイグレーションの状態を見ようと下記のコマンド打った。

python manage.py showmigrations <テーブル>

すると、下記の結果が返ってきた。

python manage.py showmigrations <テーブル> 
adminuser
 [X] 0001_initial
 [ ] 0002_rename_name_adminuser_username

つまり、0001_initial マイグレーションがすでに 適用済み だと Django は認識しているけれど、手動でテーブル(adminuser_adminuser)Dropしたため、テーブルは存在しない という不整合状態です。

そのため0002_rename_name_adminuser_usernameを適用しようとしても、「そもそも元のテーブルがない」ので失敗しているのです。

✅ 解決策(安全にやる)

🔧 手順1:マイグレーション履歴から 0001 を削除
マイグレーションを「未適用」に戻してから再実行すれば、テーブルが正しく作られます。

# 管理ツールやpsqlなどでデータベースに接続して
DELETE FROM django_migrations WHERE app = 'adminuser' AND name = '0001_initial';

image.png

🔁 手順2:マイグレーションを再実行

python manage.py migrate adminuser

以上です。

サイト

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?