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.")