BM Database Framework - A lightweight database framework
Project description
🗄️ BMDB - Bouchettoy Marouan DataBase
ORM Léger & Gestionnaire de Schémas pour le BM Framework
BMDB est le cœur de persistance des données du BM Framework. Il vous permet de définir vos modèles en YAML, de gérer les migrations de base de données et d'effectuer des opérations CRUD via un ORM simple ou une CLI puissante, sans écrire une ligne de SQL.
✨ Fonctionnalités
- 🎯 Définition de modèles en YAML : Déclarez vos tables et relations dans un fichier
models.bmdbclair. - 🚀 Migrations automatiques : Générez et exécutez les scripts SQL (ALTER TABLE, CREATE TABLE) en une commande.
- 📦 ORM intuitif : Opérations CRUD (
save(),get(),filter()...) via Python. - 🛠️ CLI complète : Gérez votre schéma de base de données entièrement depuis le terminal.
- 🔌 Multi-bases : Support natif de PostgreSQL, MySQL et SQLite.
📦 Installation
pip install bmdb
🚀 Utilisation en 30 Secondes
Créez un modèle :
bash
bmdb create-model Product name:String price:Float category:String
Générez et exécutez la migration :
bash
bmdb migrate-schema
Cette commande crée la table products dans votre base.
Utilisez l'ORM en Python :
python
from bmdb import Product
# Créer
new_product = Product(name="Ordinateur", price=999.99, category="Tech")
new_product.save()
# Lire
products = Product.filter(category="Tech")
for p in products:
print(p.name, p.price)
🛠️ Référence de la CLI
Commande Alias Description
bmdb create-model <name> <fields...> Crée un nouveau modèle avec ses champs (ex: title:String).
bmdb add-fields <model> <fields...> Ajoute des champs à un modèle existant.
bmdb migrate-schema Génère et exécute les migrations SQL pour synchroniser la BDD.
bmdb status bmdb s Affiche l'état des migrations (appliquées/en attente).
bmdb seed Remplit la base avec des données de test définies dans seed.yml.
bmdb init Initialise la configuration BMDB dans le projet courant.
📖 Référence de l'ORM (Méthodes Principales)
Méthode Exemple Description
.save() product.save() Crée ou met à jour l'enregistrement dans la base.
.delete() product.delete() Supprime l'enregistrement de la base.
.get(id) Product.get(5) Récupère un seul enregistrement par son ID.
.all() Product.all() Récupère tous les enregistrements de la table.
.filter(**kwargs) Product.filter(category="Tech", price__gt=500) Filtre les enregistrements (supporte __gt, __lt, etc.).
.first(**kwargs) Product.first(name="Laptop") Récupère le premier enregistrement correspondant.
.count() Product.filter(category="Tech").count() Compte le nombre d'enregistrements.
.to_dict() product.to_dict() Convertit l'objet en dictionnaire Python.
⚙️ Configuration
Créez un fichier .env à la racine de votre projet :
env
DB_CONNECTION="postgresql://user:password@localhost:5432/madb"
# ou pour SQLite : DB_CONNECTION="sqlite:///./database.db"
Définissez vos modèles dans models.bmdb (généré automatiquement par la CLI).
🔗 Faire partie d'une application complète
BMDB est conçu pour fonctionner de manière autonome OU comme fondation des autres modules du BM Framework :
Utilisez BMB pour exposer automatiquement vos modèles BMDB via une API RESTful.
Utilisez BMF pour générer des interfaces React qui interagissent avec cette API.
➡️ Découvrir le BM Framework complet
📄 Licence
MIT © Marouan Bouchettoy
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bmdb-1.2.0.tar.gz.
File metadata
- Download URL: bmdb-1.2.0.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
784eaf6232640c14e37a09271f9ab13848b5af97292a274eb3cacb57807feed0
|
|
| MD5 |
154eb9a65e314f168fc74d40845a1bb7
|
|
| BLAKE2b-256 |
f7f17a4f590efca118965daf68051342bc6d8189b74b0027df3a82ee43ecc9e2
|
File details
Details for the file bmdb-1.2.0-py3-none-any.whl.
File metadata
- Download URL: bmdb-1.2.0-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
467580d82bdcf60334a0c20b5b7d25ada5046d1414019e2d534534d14d31b819
|
|
| MD5 |
c419fd18682ead2a13324af6ce9ab998
|
|
| BLAKE2b-256 |
87a4e2811aa905297da26759643c7ba1d105de4f98441410f7d74574955560ac
|