ai_v/create_database.py

52 lines
1.8 KiB
Python

#!/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()