mirror of
https://github.com/Xe138/AI-Trader.git
synced 2026-04-02 01:27:24 -04:00
docs: add breaking changes for schema migration to CHANGELOG
- Document removal of trading_sessions, positions, reasoning_logs tables - Document removal of /reasoning endpoint with migration guide - Add migration instructions for production databases - Document response structure changes between old and new endpoints - Update Changed section with trade tools and executor modifications
This commit is contained in:
84
CHANGELOG.md
84
CHANGELOG.md
@@ -7,6 +7,87 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### BREAKING CHANGES
|
||||
|
||||
#### Schema Migration: Old Tables Removed
|
||||
|
||||
The following database tables have been **removed** and replaced with new schema:
|
||||
|
||||
**Removed Tables:**
|
||||
- `trading_sessions` → Replaced by `trading_days`
|
||||
- `positions` (old action-centric version) → Replaced by `trading_days` + `actions` + `holdings`
|
||||
- `reasoning_logs` → Replaced by `trading_days.reasoning_full` (JSON column)
|
||||
|
||||
**Migration Required:**
|
||||
- If you have existing data in old tables, export it before upgrading
|
||||
- New installations automatically use new schema
|
||||
- Old data cannot be automatically migrated (different data model)
|
||||
|
||||
**Database Path:**
|
||||
- Production: `data/trading.db`
|
||||
- Development: `data/trading_dev.db`
|
||||
|
||||
**To migrate existing production database:**
|
||||
```bash
|
||||
# Run migration script to drop old tables
|
||||
PYTHONPATH=. python api/migrations/002_drop_old_schema.py
|
||||
```
|
||||
|
||||
#### API Endpoint Removed: /reasoning
|
||||
|
||||
The `/reasoning` endpoint has been **removed** and replaced by `/results` with reasoning parameter.
|
||||
|
||||
**Migration Guide:**
|
||||
|
||||
| Old Endpoint | New Endpoint |
|
||||
|--------------|--------------|
|
||||
| `GET /reasoning?job_id=X` | `GET /results?job_id=X&reasoning=summary` |
|
||||
| `GET /reasoning?job_id=X&include_full_conversation=true` | `GET /results?job_id=X&reasoning=full` |
|
||||
|
||||
**Benefits of New Endpoint:**
|
||||
- Day-centric structure (easier to understand portfolio progression)
|
||||
- Daily P&L metrics included
|
||||
- AI-generated reasoning summaries (2-3 sentences)
|
||||
- Unified data model
|
||||
|
||||
**Response Structure Changes:**
|
||||
|
||||
Old `/reasoning` returned:
|
||||
```json
|
||||
{
|
||||
"sessions": [
|
||||
{
|
||||
"session_id": 1,
|
||||
"positions": [{"action_id": 0, "cash_after": 10000, ...}],
|
||||
"conversation": [...]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
New `/results?reasoning=full` returns:
|
||||
```json
|
||||
{
|
||||
"results": [
|
||||
{
|
||||
"date": "2025-01-15",
|
||||
"starting_position": {"holdings": [], "cash": 10000},
|
||||
"daily_metrics": {"profit": 0.0, "return_pct": 0.0},
|
||||
"trades": [{"action_type": "buy", "symbol": "AAPL", ...}],
|
||||
"final_position": {"holdings": [...], "cash": 8500},
|
||||
"reasoning": [...]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### Removed
|
||||
|
||||
- `/reasoning` endpoint (use `/results?reasoning=full` instead)
|
||||
- Old database tables: `trading_sessions`, `positions`, `reasoning_logs`
|
||||
- Pydantic models: `ReasoningMessage`, `PositionSummary`, `TradingSessionResponse`, `ReasoningResponse`
|
||||
- Old-schema tests for deprecated tables
|
||||
|
||||
### Added
|
||||
- **Daily P&L Calculation System** - Accurate profit/loss tracking with normalized database schema
|
||||
- New `trading_days` table for day-centric trading results with daily P&L metrics
|
||||
@@ -38,6 +119,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Reduced Docker healthcheck frequency from 30s to 1h to minimize log noise while maintaining startup verification
|
||||
- Database schema migrated from action-centric to day-centric model
|
||||
- Results API now returns normalized day-centric data structure
|
||||
- Trade tools (`buy()`, `sell()`) now write to `actions` table instead of old `positions` table
|
||||
- `model_day_executor` simplified - removed duplicate writes to old schema tables
|
||||
- `get_current_position_from_db()` queries new schema (trading_days + holdings) instead of positions table
|
||||
|
||||
### Improved
|
||||
- Database helper methods with 7 new functions for `trading_days` schema operations
|
||||
|
||||
Reference in New Issue
Block a user