Metadata-Version: 2.4
Name: evolvishub-db-migration
Version: 0.1.2
Summary: A professional database migration tool supporting multiple databases
Home-page: https://github.com/evolvisai/evolvishub-db-migration
Author: Alban Maxhuni, PhD
Author-email: "Alban Maxhuni, PhD" <a.maxhuni@evolvis.ai>
License: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: SQLAlchemy>=2.0.0
Requires-Dist: psycopg2-binary>=2.9.0
Requires-Dist: mysql-connector-python>=8.0.0
Requires-Dist: pyodbc>=4.0.0
Requires-Dist: alembic>=1.12.1
Requires-Dist: sqlparse==0.5.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: pyyaml>=6.0.1
Provides-Extra: testing
Requires-Dist: pytest>=7.0.0; extra == "testing"
Requires-Dist: pytest-cov>=4.0.0; extra == "testing"
Requires-Dist: pytest-mock>=3.10.0; extra == "testing"
Provides-Extra: docs
Requires-Dist: sphinx>=6.0.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=1.0.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints>=1.22.0; extra == "docs"
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# EvolvisHub DB Migration

A robust database migration tool developed by [Evolvis AI](https://evolvis.ai) for managing database schema changes efficiently and reliably.

## About Evolvis AI

[Evolvis AI](https://evolvis.ai) is a leading provider of AI-powered solutions, helping businesses transform their operations through innovative technology. Our mission is to make artificial intelligence accessible to companies of all sizes, enabling them to compete effectively in today's data-driven environment.

## Author

**Alban Maxhuni, PhD**  
Email: [a.maxhuni@evolvis.ai](mailto:a.maxhuni@evolvis.ai)  
Senior Software Engineer at Evolvis AI

## Features

- Support for multiple database types (SQLite, PostgreSQL, MySQL)
- Version-controlled migrations
- Rollback capability
- Migration status tracking
- Command-line interface
- Configuration management
- Logging and error handling

## Installation

```bash
pip install evolvishub-db-migration
```

## Usage

### Initialize a new migration project

```bash
db-migrate init config.yaml
```

### Create a new migration

```bash
db-migrate create config.yaml my_migration "CREATE TABLE my_table (id INTEGER PRIMARY KEY)"
```

### Apply migrations

```bash
db-migrate migrate config.yaml
```

### Check migration status

```bash
db-migrate status config.yaml
```

Example output:
```
Total migrations: 1
Applied migrations: 1
Pending migrations: 0
✓ 001_my_migration (version: 001)
All migrations applied
```

## Configuration

The configuration file (`config.yaml`) should have the following structure:

```yaml
database:
  type: sqlite
  connection_string: sqlite:///database.db

migrations:
  directory: migrations
```

## Development

### Setup Development Environment

1. Clone the repository:
```bash
git clone https://github.com/evolvis-ai/evolvishub-db-migration.git
cd evolvishub-db-migration
```

2. Create and activate a virtual environment:
```bash
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
```

3. Install development dependencies:
```bash
pip install -r requirements-dev.txt
```

### Running Tests

```bash
pytest
```

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

For support, please contact [a.maxhuni@evolvis.ai](mailto:a.maxhuni@evolvis.ai) or visit [Evolvis AI](https://evolvis.ai).

## Acknowledgments

- Thanks to all contributors who have helped shape this project
- Special thanks to the Evolvis AI team for their support and guidance
