Files
njts-accounting-core/backend/create_std_remuneration_table.py
2026-01-21 10:58:19 +09:00

54 lines
1.6 KiB
Python

import psycopg2
import os
from dotenv import load_dotenv
load_dotenv()
DB_CONFIG = {
"host": os.getenv("DB_HOST", "192.168.0.61"),
"port": os.getenv("DB_PORT", "55432"),
"database": os.getenv("DB_NAME", "njts_acct"),
"user": os.getenv("DB_USER", "njts_app"),
"password": os.getenv("DB_PASSWORD", "njts_app2025"),
}
def create_standard_remuneration_table():
"""標準報酬月額表テーブルを作成"""
conn = psycopg2.connect(**DB_CONFIG)
cur = conn.cursor()
# テーブル作成
sql = """
CREATE TABLE IF NOT EXISTS standard_remuneration (
id SERIAL PRIMARY KEY,
rate_year INTEGER NOT NULL,
prefecture VARCHAR(50) NOT NULL,
grade VARCHAR(20) NOT NULL,
monthly_amount DECIMAL(12, 2) NOT NULL,
salary_from DECIMAL(12, 2) NOT NULL,
salary_to DECIMAL(12, 2),
health_insurance_no_care DECIMAL(12, 2) NOT NULL,
health_insurance_with_care DECIMAL(12, 2) NOT NULL,
pension_insurance DECIMAL(12, 2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE(rate_year, prefecture, grade)
);
-- インデックス作成
CREATE INDEX IF NOT EXISTS idx_standard_remuneration_year_pref
ON standard_remuneration(rate_year, prefecture);
CREATE INDEX IF NOT EXISTS idx_standard_remuneration_salary
ON standard_remuneration(rate_year, prefecture, salary_from, salary_to);
"""
cur.execute(sql)
conn.commit()
print("✅ standard_remuneration テーブルを作成しました")
cur.close()
conn.close()
if __name__ == "__main__":
create_standard_remuneration_table()