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.1.tar.gz (11.2 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.1-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bmdb-1.3.1.tar.gz
  • Upload date:
  • Size: 11.2 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.1.tar.gz
Algorithm Hash digest
SHA256 919a14a551029923cf47e0cda0b00aea23637826a86cb76d56511da744d65923
MD5 f6514a74e894832aa26976c1aad541ad
BLAKE2b-256 672a88b44d078605d0a6ab8b82dda766cbcb323b642b3296fa869dba0eb1724e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bmdb-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 8.9 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 805ccd3e59a72544f0bb4d17ad114ddbb2c70d972560a420a4502060dd0a871c
MD5 c64af44230fec1beeef4049c5966325d
BLAKE2b-256 17a32ff12013d8bf2e001d570a18344799b849e3376889b69d0f158fd3f86685

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