help-desk/backend/create_db.py
2025-11-18 21:53:33 +00:00

34 lines
1.4 KiB
Python

import psycopg
import os
# --- ตั้งค่าการเชื่อมต่อ (สำคัญ: ต้องตรงกับค่าใน .env) ---
DB_HOST = os.environ.get("DB_HOST", "localhost") # ใช้ localhost
DB_PORT = os.environ.get("DB_PORT", 26257)
DB_NAME = os.environ.get("DB_NAME", "my_db")
DB_USER = os.environ.get("DB_USER", "root")
DB_PASSWORD = os.environ.get("DB_PASSWORD", "")
print(f"Attempting to connect to CockroachDB at {DB_HOST}:{DB_PORT} to create database '{DB_NAME}'...")
try:
# ต้องเชื่อมต่อไปยัง Database มาตรฐาน (defaultdb) ก่อน เพื่อให้มีสิทธิ์สร้าง Database ใหม่
conn = psycopg.connect(
host=DB_HOST,
port=DB_PORT,
dbname="defaultdb", # ใช้ defaultdb เพื่อสร้าง my_db
user=DB_USER,
password=DB_PASSWORD
)
conn.autocommit = True
cur = conn.cursor()
# คำสั่งสร้าง Database
cur.execute(f"CREATE DATABASE IF NOT EXISTS {DB_NAME};")
cur.close()
conn.close()
print(f"Database '{DB_NAME}' created or already exists successfully.")
except Exception as e:
print(f"ERROR: Failed to connect to or create database: {e}")
print("Ensure Docker Compose is running and environment variables (DB_HOST, DB_PORT) are set correctly.")