Files
njts-accounting-core/check_revisions.py
2026-03-03 00:01:43 +09:00

49 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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()