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

View File

@ -0,0 +1,136 @@
#!/usr/bin/env python
"""
データベース接続状況とold_rogdbデータ確認スクリプト
現在のDB接続状況を確認し、old_rogdbの実際のデータを調査
"""
import os
import sys
import django
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
from django.db import connection, connections
from django.conf import settings
print("=== データベース接続状況確認 ===")
try:
# 現在のデータベース設定を確認
print("\\n1. Django設定確認:")
databases = settings.DATABASES
for db_name, config in databases.items():
print(f" {db_name}: {config.get('NAME', 'Unknown')} @ {config.get('HOST', 'localhost')}")
with connection.cursor() as cursor:
# 現在接続しているデータベース名を確認
cursor.execute("SELECT current_database();")
current_db = cursor.fetchone()[0]
print(f"\\n2. 現在接続中のDB: {current_db}")
# データベース内のテーブル一覧確認
cursor.execute("""
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name LIKE '%rog%'
ORDER BY table_name;
""")
tables = cursor.fetchall()
print(f"\\n3. rogaine関連テーブル:")
for table in tables:
print(f" - {table[0]}")
# old_rogdbスキーマまたはテーブルの存在確認
cursor.execute("""
SELECT schemaname, tablename, hasindexes, hasrules, hastriggers
FROM pg_tables
WHERE tablename LIKE '%rog%'
ORDER BY schemaname, tablename;
""")
all_rog_tables = cursor.fetchall()
print(f"\\n4. 全スキーマのrog関連テーブル:")
for schema, table, idx, rules, triggers in all_rog_tables:
print(f" {schema}.{table}")
# データ存在確認
print(f"\\n5. 現在のデータ状況:")
# rog_entry データ確認
try:
cursor.execute("SELECT COUNT(*) FROM rog_entry;")
entry_count = cursor.fetchone()[0]
print(f" rog_entry: {entry_count}")
if entry_count > 0:
cursor.execute("SELECT * FROM rog_entry LIMIT 3;")
sample_entries = cursor.fetchall()
print(" サンプルエントリー:")
for entry in sample_entries:
print(f" ID:{entry[0]}, Team:{entry[5]}, Event:{entry[3]}")
except Exception as e:
print(f" rog_entry エラー: {e}")
# rog_team データ確認
try:
cursor.execute("SELECT COUNT(*) FROM rog_team;")
team_count = cursor.fetchone()[0]
print(f" rog_team: {team_count}")
if team_count > 0:
cursor.execute("SELECT id, team_name, zekken_number FROM rog_team WHERE zekken_number IS NOT NULL AND zekken_number != '' LIMIT 5;")
sample_teams = cursor.fetchall()
print(" ゼッケン付きチーム:")
for team in sample_teams:
print(f" ID:{team[0]}, Name:{team[1]}, Zekken:{team[2]}")
except Exception as e:
print(f" rog_team エラー: {e}")
# もしold_rogdbが別のスキーマにある場合
print(f"\\n6. 別スキーマのold_rogdbデータ確認:")
try:
# old_rogdbスキーマが存在するかチェック
cursor.execute("""
SELECT schema_name
FROM information_schema.schemata
WHERE schema_name LIKE '%old%' OR schema_name LIKE '%rog%';
""")
schemas = cursor.fetchall()
print(" 利用可能なスキーマ:")
for schema in schemas:
print(f" - {schema[0]}")
# old_rogdbスキーマがある場合、そのデータを確認
for schema in schemas:
schema_name = schema[0]
if 'old' in schema_name.lower():
try:
cursor.execute(f"SELECT COUNT(*) FROM {schema_name}.rog_entry;")
old_entry_count = cursor.fetchone()[0]
print(f" {schema_name}.rog_entry: {old_entry_count}")
except Exception as e:
print(f" {schema_name}.rog_entry: アクセスエラー - {e}")
except Exception as e:
print(f" スキーマ確認エラー: {e}")
# old_rogdbが別のデータベースの場合の確認
print(f"\\n7. 利用可能なデータベース一覧:")
cursor.execute("""
SELECT datname
FROM pg_database
WHERE datistemplate = false
ORDER BY datname;
""")
databases = cursor.fetchall()
for db in databases:
print(f" - {db[0]}")
except Exception as e:
print(f"❌ エラーが発生しました: {e}")
import traceback
traceback.print_exc()