44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
import os
|
|
import psycopg2
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
conn = psycopg2.connect(
|
|
host=os.getenv('DB_HOST'),
|
|
port=os.getenv('DB_PORT'),
|
|
dbname=os.getenv('DB_NAME'),
|
|
user=os.getenv('DB_USER'),
|
|
password=os.getenv('DB_PASSWORD')
|
|
)
|
|
|
|
cur = conn.cursor()
|
|
|
|
# 年度フィールドを追加
|
|
try:
|
|
cur.execute("ALTER TABLE income_tax_table ADD COLUMN tax_year INTEGER")
|
|
print("✓ tax_year カラムを追加")
|
|
except Exception as e:
|
|
print(f"カラム追加スキップ(既に存在する可能性): {e}")
|
|
conn.rollback()
|
|
|
|
# 既存データに年度を設定
|
|
try:
|
|
cur.execute("UPDATE income_tax_table SET tax_year = EXTRACT(YEAR FROM valid_from) WHERE tax_year IS NULL")
|
|
print("✓ 既存データに年度を設定")
|
|
except Exception as e:
|
|
print(f"エラー: {e}")
|
|
|
|
# インデックスを追加
|
|
try:
|
|
cur.execute("CREATE INDEX IF NOT EXISTS idx_income_tax_year ON income_tax_table(tax_year)")
|
|
print("✓ インデックスを追加")
|
|
except Exception as e:
|
|
print(f"インデックス追加エラー: {e}")
|
|
|
|
conn.commit()
|
|
cur.close()
|
|
conn.close()
|
|
|
|
print("\n完了!")
|