feat: migrate from SQLite to PostgreSQL + Redis architecture

Major database migration to modernize the AI trading system:
• **Database Migration**:
  - Add PostgreSQL 15 and Redis 7 services to docker-compose
  - Create comprehensive PostgreSQL schema with proper indexes and triggers
  - Implement DatabaseInterface for multi-database support
  - Add automatic environment-based database selection
• **Infrastructure**:
  - PostgreSQL: ACID transactions, better concurrency, JSON support
  - Redis: High-performance caching layer (prepared for future use)
  - Docker services with health checks and dependency management
  - Persistent volumes for data safety
• **Code Refactoring**:
  - Abstract database operations through DatabaseInterface
  - Implement PostgreSQL-specific operations with proper syntax
  - Update all SQL queries to support both SQLite and PostgreSQL
  - Fix foreign key constraints and data type conversions
• **Migration Tools**:
  - Automated data migration script from SQLite to PostgreSQL
  - Complete backup and restore procedures
  - One-click migration script with validation
• **Compatibility**:
  - Backward compatible with existing SQLite deployments
  - Environment variable driven database selection
  - Preserved all existing functionality and data
🎯 Benefits: Better performance, scalability, and reliability for production deployments
This commit is contained in:
icy
2025-11-04 15:09:11 +08:00
parent 4c74465075
commit 6426696258
14 changed files with 1437 additions and 12 deletions

View File

@@ -21,12 +21,12 @@ import (
type Server struct {
router *gin.Engine
traderManager *manager.TraderManager
database *config.Database
database config.DatabaseInterface
port int
}
// NewServer 创建API服务器
func NewServer(traderManager *manager.TraderManager, database *config.Database, port int) *Server {
func NewServer(traderManager *manager.TraderManager, database config.DatabaseInterface, port int) *Server {
// 设置为Release模式减少日志输出
gin.SetMode(gin.ReleaseMode)