49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
||
import psycopg2
|
||
from psycopg2.extras import RealDictCursor
|
||
import os
|
||
|
||
# 接続設定
|
||
conn = psycopg2.connect(
|
||
user=os.getenv('DB_USER', 'postgres'),
|
||
password=os.getenv('DB_PASSWORD', 'postgres'),
|
||
host='localhost',
|
||
port='5432',
|
||
database=os.getenv('DB_NAME', 'accounting_db')
|
||
)
|
||
|
||
cur = conn.cursor(cursor_factory=RealDictCursor)
|
||
|
||
# 修正版本(revision_count > 1)があるか確認
|
||
cur.execute("""
|
||
SELECT COUNT(*) as total,
|
||
COUNT(CASE WHEN is_latest = true THEN 1 END) as latest_count,
|
||
COUNT(CASE WHEN revision_count > 1 THEN 1 END) as revised_count,
|
||
MAX(revision_count) as max_revision
|
||
FROM journal_entries
|
||
WHERE is_deleted = false
|
||
""")
|
||
|
||
result = cur.fetchone()
|
||
print("📊 修正版本統計")
|
||
print(f" • 全記録: {result['total']}")
|
||
print(f" • 最新版本: {result['latest_count']}")
|
||
print(f" • 修正版本: {result['revised_count']}")
|
||
print(f" • 最大改版數: {result['max_revision']}")
|
||
|
||
# 修正版本の例を表示
|
||
if result['revised_count'] > 0:
|
||
print("\n📝 修正版本の例(最初の 5 件):")
|
||
cur.execute("""
|
||
SELECT journal_entry_id, entry_date, description, revision_count, is_latest
|
||
FROM journal_entries
|
||
WHERE revision_count > 1 AND is_deleted = false
|
||
ORDER BY revision_count DESC, journal_entry_id DESC
|
||
LIMIT 5
|
||
""")
|
||
for row in cur.fetchall():
|
||
print(f" • ID {row['journal_entry_id']}: {row['entry_date']} - {row['description']} (v{row['revision_count']}, latest={row['is_latest']})")
|
||
|
||
cur.close()
|
||
conn.close()
|