Inspiration
MyDB CLI Tool was inspired by the need for Git-like branching and version control in MySQL database management. Developers often struggle with managing database schema changes in isolation, so we aimed to bring Git-like functionality to databases, allowing for branching, migrations, and merging.
What it does
- Git-like branching for MySQL databases.
- Database migrations with up/down support.
- Branch merging and schema conflict resolution.
- Table management (create, describe, delete).
- Migration tracking with detailed history.
- GUI interface via MyDB Studio for visual management.
How we built it
- Language: Python
- Libraries: MySQL Connector, Click for CLI, custom logic for branching and migrations.
- Features: Database branching, migrations (up/down), branch merging, migration history, table operations.
- GUI: Integrated MyDB Studio for a visual interface.
Challenges we ran into
- Merge conflicts: Handling schema changes in multiple branches and resolving conflicts.
- Migration integrity: Ensuring migrations were tracked and applied correctly, especially during rollbacks.
Accomplishments that we're proud of
- Successfully implemented Git-like branching for MySQL databases.
- Developed a fully functional CLI with seamless migration and table management.
- Integrated a GUI for a better user experience with MyDB Studio.
What we learned
- How to design a database tool that integrates version control principles (Git) with MySQL.
- Overcame challenges with schema conflict resolution during branch merging.
- The importance of clear user prompts and rollback capabilities in migration management.
What's next for MyDB CLI
- Add more advanced conflict resolution for merging branches.
- Improve the GUI with more interactive features (e.g., live schema visualization).
- Explore additional database support (PostgreSQL, SQLite).
- Introduce subscription-based premium features for advanced users.