#!/usr/bin/env python # -*- coding: utf-8 -*- """ 数据库创建脚本 用于在 PostgreSQL 服务器上创建 ai_vision 数据库 """ from sqlalchemy import create_engine, text from sqlalchemy.engine import url # 数据库连接信息 (从 config 或直接指定) DB_HOST = "331002.xyz" DB_PORT = 2022 DB_USER = "user_xREpkJ" DB_PASSWORD = "password_DZz8DQ" DB_NAME = "ai_vision" def create_database(): """创建数据库""" try: # 连接到默认的 postgres 数据库 print(f"🔗 正在连接到 PostgreSQL 服务器 {DB_HOST}:{DB_PORT}...") # 构造连接 URL (连接到 postgres 数据库以执行 CREATE DATABASE) postgres_url = f"postgresql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/postgres" engine = create_engine(postgres_url, isolation_level="AUTOCOMMIT") with engine.connect() as conn: # 检查数据库是否存在 result = conn.execute(text(f"SELECT 1 FROM pg_database WHERE datname = '{DB_NAME}'")) exists = result.fetchone() if exists: print(f"✅ 数据库 {DB_NAME} 已经存在") else: # 创建数据库 print(f"🔧 正在创建数据库 {DB_NAME}...") conn.execute(text(f'CREATE DATABASE {DB_NAME}')) print(f"✅ 数据库 {DB_NAME} 创建成功!") print(f"\n📊 数据库信息:") print(f" 主机: {DB_HOST}:{DB_PORT}") print(f" 数据库名: {DB_NAME}") print(f" 用户: {DB_USER}") print(f"\n💡 下一步:运行 python init_db.py 创建数据表") except Exception as e: print(f"❌ 发生错误: {e}") if __name__ == '__main__': create_database()