NoSQL2SQL is an database migration tool that seamlessly converts NoSQL databases to SQL format with intelligent schema analysis, visualization, and conversational assistance.
- Multi-Database Support: Redis, CouchDB, Cassandra and Neo4j to MySQL
- Intelligent Schema Analysis: Automatic pattern recognition and type inference
- Data Preservation: Maintains data integrity during migration
- Relationship Detection: Identifies implicit relationships in NoSQL data
- MCP Integration: Model Context Protocol with Gemini 2.0 Flash for Neo4j migration
- AI Recommendations: Automatic relationship suggestions with confidence scores
- Conversational Assistant: Resizable chat sidebar (Claude-style) for migration guidance
- Schema Optimization: AI-powered data type and index recommendations
- MCP Servers: Dedicated Model Context Protocol servers for Redis, CouchDB, and Neo4j
- Dark/Light Theme: Auto-syncs with Windows system theme
- Interactive Visualization: dbdiagram.io-style ERD with zoom/pan
- Animated UI: Apple-style toggle switches with smooth transitions
- Real-time Progress: Live migration status and logging
- Encrypted Storage: API keys and passwords stored securely
- Persistent Configuration: Settings preserved across sessions
- Flexible Options: Toggle features on/off as needed
| Source Database | Target Database | Status |
|---|---|---|
| Redis | MySQL | β Full Support |
| CouchDB | MySQL | β Full Support |
| Cassandra | MySQL | β Full Support |
| Neo4j | MySQL | β Full Support (with MCP) |
- Python 3.7 or higher
- MySQL Server (5.7+)
- Source database (Redis/CouchDB/Neo4j) running
- (Optional) Gemini API key for AI features
-
Clone the repository:
git clone https://github.com/AryaChavan838181/SY_SEM_3_DBMS_CP_NoSQL2SQL.git cd SY_SEM_3_DBMS_CP_NoSQL2SQL -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
Windows:
start.bat
Or manually:
python gui_converter.py
-
Configure Settings (File β Settings)
- Choose your theme (Auto/Light/Dark)
- (Optional) Enable MCP and enter Gemini API key
- (Optional) Configure database passwords
-
Run a Migration
- Select source database (Redis/CouchDB/Neo4j)
- Enter MySQL credentials
- Test connection
- Validate database name
- (Optional) Get AI recommendations
- (Optional) Customize schema
- Start migration
- Visualize results
- Get a free Gemini API key: Google AI Studio
- Open Settings (File β Settings)
- Go to "AI & MCP" tab
- Toggle "Enable MCP" ON
- Enter your API key
- Enable "AI Recommendations"
- Save
- AI Recommendations: Analyzes schema and suggests relationships
- Chat Sidebar: Toggle with
Ctrl+Bor View β Toggle Chat Sidebar - Ask Questions: Get migration strategies and schema advice
- Schema Optimization: Get suggestions for better data types
- Natural Language Queries: Interact conversationally
- Quick Actions: Pre-configured prompts for common tasks
| Shortcut | Action |
|---|---|
Ctrl+B |
Toggle AI Chat Sidebar |
After migration, use the Schema Visualizer to:
- View interactive ERD diagrams
- Explore table relationships
- Zoom and pan the canvas
- Export diagrams as images
- Switch between layout modes (Auto/Grid/Circular)
Access: Tools β Schema Visualizer or click Visualize button
The app automatically matches your Windows system theme:
- Auto Mode: Follows Windows dark/light theme
- Manual Override: Choose Light or Dark manually
- Persistent: Theme choice saved across sessions
Toggle: View β Toggle Theme or File β Settings β Appearance
Settings are stored in: C:\Users\[YourName]\.nosql2sql\
settings.json: General preferencessecure.enc: Encrypted sensitive data (API keys, passwords).key: Machine-specific encryption key (hidden)
NoSQL2SQL/
βββ gui_converter.py # Main application (ENHANCED)
βββ config_manager.py # Settings & encryption (NEW)
βββ theme_manager.py # Theme system (NEW)
βββ mcp_manager.py # AI & MCP integration (NEW)
βββ schema_visualizer.py # ERD visualization (NEW)
βββ chat_interface.py # AI chat sidebar (NEW)
βββ settings_panel.py # Settings UI (NEW)
βββ animated_toggle.py # UI components (NEW)
βββ redis2mysql.py # Redis converter
βββ sqlbuilder.py # SQL schema builder
βββ redis_schema_analyzer.py # Redis analyzer
βββ couchdb_converter/ # CouchDB modules
β βββ couchdb2mysql.py
β βββ couchdb_schema_analyzer.py
βββ neo4j_converter/ # Neo4j modules (NEW)
β βββ neo4j2mysql.py
β βββ neo4j_schema_analyzer.py
βββ mcp_servers/ # MCP servers (NEW)
β βββ mcp_neo4j.py # Neo4j MCP server
β βββ mcp_redis.py # Redis MCP server
β βββ mcp_couchdb.py # CouchDB MCP server
βββ requirements.txt # Dependencies (UPDATED)
βββ start.bat # Windows launcher (NEW)
- Course: Database Management Systems (DBMS)
- Semester: 3rd Semester
- Type: Course Project (CP)
- Focus: NoSQL to SQL migration with AI enhancement
This project introduces several innovations:
- Frequency-Based Schema Inference: Statistical analysis for optimal schema
- Dynamic Document Mapping: Universal pattern recognition
- Threshold-Based Normalization: Smart flattening decisions
- AI-Powered Recommendations: Gemini 2.0 Flash integration
- MCP Protocol Support: Conversational database operations
- Cross-Platform Theme Sync: OS-aware theming
- Encrypted Configuration: Secure credential storage
See NOVEL_FEATURES.md for technical details.
README.md- This fileNOVEL_FEATURES.md- Technical innovationsREDIS_IMPLEMENTATION_DOCUMENTATION.md- Redis implementation details- Comments in source code - Inline documentation
MCP won't start:
- Check your Gemini API key in settings
- Verify internet connection
- Check API quota at Google AI Studio
Theme not applying:
- Restart the application
- Try manual theme selection in settings
Migration fails:
- Verify source database is running
- Check database credentials
- Ensure sufficient permissions
- Review migration log for details
Visualization not working:
- Run a migration first to generate schema
- Enable visualization in settings
- Check that migration completed successfully
Redis:
- Ensure Redis server is running:
redis-server - Test with:
redis-cli ping - Default port: 6379
CouchDB:
- Ensure CouchDB is running
- Default URL: http://localhost:5984
- Check admin credentials
Neo4j:
- Ensure Neo4j is running
- Default bolt port: 7687
- Configure password in settings