34 lines
1.4 KiB
Python
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.") |