Fix migration error

This commit is contained in:
2025-08-29 09:11:20 +09:00
parent a180c1e258
commit b91b522fa3
26 changed files with 5848 additions and 22 deletions

66
clear_rog_migrations.py Normal file
View File

@ -0,0 +1,66 @@
#!/usr/bin/env python
"""
マイグレーション履歴リセットスクリプト
rogアプリのマイグレーション履歴をクリアして、新しいシンプルマイグレーションを適用
"""
import os
import sys
import django
from django.core.management import execute_from_command_line
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
from django.db import connection
from django.core.management.color import no_style
print("=== マイグレーション履歴のクリア ===")
# データベース接続を取得
cursor = connection.cursor()
try:
# rogアプリのマイグレーション履歴をクリア
print("rogアプリのマイグレーション履歴を削除中...")
cursor.execute("DELETE FROM django_migrations WHERE app = 'rog';")
print("✅ rogアプリのマイグレーション履歴を削除しました")
# コミット
connection.commit()
print("\n=== マイグレーション状態確認 ===")
# マイグレーション状態を確認
execute_from_command_line(['manage.py', 'showmigrations', 'rog'])
print("\n=== 新しいマイグレーションを偽装適用 ===")
# 依存関係チェックを無視してマイグレーションを偽装適用
try:
# まず --run-syncdb で既存のテーブル構造を認識させる
execute_from_command_line(['manage.py', 'migrate', '--run-syncdb'])
except Exception as sync_error:
print(f"syncdb エラー(継続): {sync_error}")
# マイグレーション履歴に直接レコードを挿入
print("マイグレーション履歴を直接挿入中...")
# 新しいカーソルを作成
with connection.cursor() as new_cursor:
new_cursor.execute("""
INSERT INTO django_migrations (app, name, applied)
VALUES ('rog', '0001_simple_initial', NOW())
ON CONFLICT DO NOTHING;
""")
connection.commit()
print("✅ マイグレーション履歴を挿入しました")
print("\n=== 最終確認 ===")
# 最終確認
execute_from_command_line(['manage.py', 'showmigrations'])
except Exception as e:
print(f"❌ エラーが発生しました: {e}")
connection.rollback()
finally:
cursor.close()