a
This commit is contained in:
parent
7b8bcd758d
commit
449ad01ede
4
backend/database/add_realized_pnl_columns.sql
Normal file
4
backend/database/add_realized_pnl_columns.sql
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
ALTER TABLE trades ADD COLUMN IF NOT EXISTS realized_pnl DECIMAL(20, 8) DEFAULT NULL COMMENT '币安实际结算盈亏(包含资金费率等)';
|
||||||
|
ALTER TABLE trades ADD COLUMN IF NOT EXISTS commission DECIMAL(20, 8) DEFAULT NULL COMMENT '交易手续费(USDT计价)';
|
||||||
|
ALTER TABLE trades ADD COLUMN IF NOT EXISTS commission_asset VARCHAR(10) DEFAULT NULL COMMENT '手续费币种(BNB/USDT)';
|
||||||
23
backend/stop.sh
Normal file
23
backend/stop.sh
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# 停止后端服务脚本
|
||||||
|
|
||||||
|
cd "$(dirname "$0")"
|
||||||
|
|
||||||
|
# 查找运行中的uvicorn进程
|
||||||
|
PID=$(ps aux | grep "uvicorn api.main:app" | grep -v grep | awk '{print $2}')
|
||||||
|
|
||||||
|
if [ -z "$PID" ]; then
|
||||||
|
echo "未找到运行中的后端服务"
|
||||||
|
else
|
||||||
|
echo "找到运行中的后端服务,PID: $PID"
|
||||||
|
echo "正在停止服务..."
|
||||||
|
kill $PID
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# 检查是否成功停止
|
||||||
|
if ps -p $PID > /dev/null 2>&1; then
|
||||||
|
echo "停止失败,尝试强制停止..."
|
||||||
|
kill -9 $PID
|
||||||
|
fi
|
||||||
|
echo "后端服务已停止"
|
||||||
|
fi
|
||||||
35
check_db.py
Normal file
35
check_db.py
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import pymysql
|
||||||
|
from pathlib import Path
|
||||||
|
from dotenv import load_dotenv
|
||||||
|
|
||||||
|
# Load env
|
||||||
|
backend_dir = Path(__file__).parent / 'backend'
|
||||||
|
load_dotenv(backend_dir / '.env', override=True)
|
||||||
|
|
||||||
|
host = os.getenv('DB_HOST', 'localhost')
|
||||||
|
port = int(os.getenv('DB_PORT', 3306))
|
||||||
|
user = os.getenv('DB_USER', 'root')
|
||||||
|
password = os.getenv('DB_PASSWORD', '')
|
||||||
|
|
||||||
|
print(f"Connecting to {host}:{port} as {user}")
|
||||||
|
|
||||||
|
try:
|
||||||
|
conn = pymysql.connect(
|
||||||
|
host=host,
|
||||||
|
port=port,
|
||||||
|
user=user,
|
||||||
|
password=password,
|
||||||
|
charset='utf8mb4'
|
||||||
|
)
|
||||||
|
cursor = conn.cursor()
|
||||||
|
cursor.execute("SHOW DATABASES")
|
||||||
|
dbs = cursor.fetchall()
|
||||||
|
print("Databases:")
|
||||||
|
for db in dbs:
|
||||||
|
print(db)
|
||||||
|
conn.close()
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error: {e}")
|
||||||
32
update_db_schema.py
Normal file
32
update_db_schema.py
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# Add backend directory to path
|
||||||
|
sys.path.append(os.path.join(os.path.dirname(__file__), 'backend'))
|
||||||
|
|
||||||
|
from database.connection import db
|
||||||
|
|
||||||
|
def run_migration():
|
||||||
|
print("Running migration to add realized_pnl and commission columns...")
|
||||||
|
|
||||||
|
sqls = [
|
||||||
|
"ALTER TABLE trades ADD COLUMN realized_pnl DECIMAL(20, 8) DEFAULT NULL COMMENT '币安实际结算盈亏(包含资金费率等)'",
|
||||||
|
"ALTER TABLE trades ADD COLUMN commission DECIMAL(20, 8) DEFAULT NULL COMMENT '交易手续费(USDT计价)'",
|
||||||
|
"ALTER TABLE trades ADD COLUMN commission_asset VARCHAR(10) DEFAULT NULL COMMENT '手续费币种(BNB/USDT)'"
|
||||||
|
]
|
||||||
|
|
||||||
|
for sql in sqls:
|
||||||
|
try:
|
||||||
|
print(f"Executing: {sql}")
|
||||||
|
db.execute_update(sql)
|
||||||
|
print("Success.")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error executing SQL: {e}")
|
||||||
|
# Ignore duplicate column errors if IF NOT EXISTS fails for some reason
|
||||||
|
pass
|
||||||
|
|
||||||
|
print("Migration completed.")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
run_migration()
|
||||||
Loading…
Reference in New Issue
Block a user