Fix migration error
This commit is contained in:
136
check_database_connection.py
Normal file
136
check_database_connection.py
Normal 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()
|
||||
Reference in New Issue
Block a user