52 lines
1.8 KiB
Python
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()
|