baodan/scripts/deploy/start-api.sh
2026-07-23 08:52:59 +08:00

43 lines
976 B
Bash

#!/bin/bash
# 保单智能客服系统 — 后端启动脚本
set -e
# 设置环境变量
export PYTHONPATH=/app
export FLASK_APP=insurance.app
# 等待数据库就绪
echo "等待数据库就绪..."
for i in {1..30}; do
if python -c "import psycopg2; psycopg2.connect('$DATABASE_URL')" 2>/dev/null; then
echo "数据库已就绪"
break
fi
sleep 2
done
# 初始化数据库表
echo "初始化数据库..."
cd /app
python -c "
import sys
sys.path.insert(0, '/app')
from insurance.db.database import db, init_db
from insurance.app import create_app
app = create_app()
with app.app_context():
db.create_all()
print('数据库表创建完成')
" 2>/dev/null || echo "数据库初始化跳过(可能已存在)"
# 启动 gunicorn
echo "启动 API 服务..."
exec gunicorn \
--bind 0.0.0.0:5001 \
--workers 2 \
--timeout 120 \
--worker-class geventwebsocket.gunicorn.workers.GeventWebSocketWorker \
insurance.app:app