54 lines
1.6 KiB
Python
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()
|