Skip to main content

BM Database Framework - A lightweight database framework

Project description

🗄️ BMDB - Bouchettoy Marouan DataBase

ORM Léger & Gestionnaire de Schémas pour le BM Framework

Retour au Framework Principal PyPI Version

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.bmdb clair.
  • 🚀 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

bmdb-1.3.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bmdb-1.3.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file bmdb-1.3.0.tar.gz.

File metadata

  • Download URL: bmdb-1.3.0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for bmdb-1.3.0.tar.gz
Algorithm Hash digest
SHA256 7212878b76027c00f4ddbd0fdb47ebd7d96d227fd6e83d1e0b94239b47cad637
MD5 a86bf415d7ef5752f9400b9c96b00735
BLAKE2b-256 ff5fd34642c27e2d4d192e037d205ae0cc12a0bc294a99c3c17bf8baba48fb01

See more details on using hashes here.

File details

Details for the file bmdb-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: bmdb-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for bmdb-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8959e44191007ba58ae953ddbe45521633bd4d6f6a387e30d9eb16afbb267c02
MD5 195b463fe0d3fe74af90f98289bc44e4
BLAKE2b-256 ecd9659c698443ed13cad67a6a5d6365a47e42294e7da731c27fd965da34036c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page