Metadata-Version: 2.1
Name: enchante
Version: 0.2.0
Summary: CLI tool to help scaffolding relational DB architecture as code
License: MIT
Author: Steven John
Author-email: steven@stevenjohn.co
Requires-Python: >=3.10
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: SQLAlchemy (>=2.0,<3.0)
Requires-Dist: alembic (>=1.11.1,<2.0.0)
Requires-Dist: jinja2 (>=3.1.4,<4.0.0)
Requires-Dist: pydantic (>=2.1.1,<3.0.0)
Requires-Dist: pyhumps (>=3.8.0,<4.0.0)
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
Requires-Dist: rich (>=13.7.1,<14.0.0)
Requires-Dist: typer (>=0.9.0)
Description-Content-Type: text/markdown

# enchante
Simplify your DB management

---
## Motivation

Imagine you're creating an API that connects to your SQL DB via SQLAlchemy. One of the biggest pain points is to create a structure that makes logical sense along with being easy to scale (as in add more tables easily).
Well, that's where `enchante` comes in! Using the power of Pydantic, SQLAlchemy and Alembic, it'll be much easier to initialise and make changes to your database.

This CLI helps with creating and scaffolding the structure of your db architecture as python code.

### Folder structure
```
db/
├─ migrations/
├─ [table_name]/
│  ├─ __init__.py
│  ├─ crud.py
│  ├─ model.py
│  ├─ schema.py
enchante.toml
```
## Why not `...`?
<details>
  <summary>
    Why not <a href="https://sqlmodel.tiangolo.com/">SQLModel</a> instead of
    Pydantic + SQLALchemy?
  </summary>
  SQLModel still has a long way to go
  <a href="https://github.com/tiangolo/sqlmodel/issues/654">
    with their current roadmap </a
  >, but they're making good progress!
</details>


## How to use
1. First run `enchante init <root_dir>`
2. Now you can run `enchante create <object_name>`

## Development 

---
License: [MIT](https://github.com/StevenJPx2/enchante/blob/main/LICENSE)

