43 lines
976 B
Bash
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
|