Skip to main content

Youcadb

CI PyPI version Coverage License: MIT

CLI de diagnostic et de configuration pour bases de données PostgreSQL et MySQL.

Youcadb analyse votre projet, y détecte le langage et le framework, se connecte à votre moteur de base de données, crée bases et utilisateurs, puis exécute un diagnostic complet de l'environnement — le tout depuis une unique interface en ligne de commande.


Pourquoi Youcadb ?

Mettre en place une base de données en développement est une tâche répétitive et source d'erreurs : créer la base, créer l'utilisateur, accorder les droits, rester cohérent avec le fichier .env, puis comprendre pourquoi une connexion échoue… Youcadb automatise tout cela :

  • Un seul outil pour l'initialisation, la création et le diagnostic — fini le jonglage entre psql/mysql, Docker et les fichiers de configuration.
  • Des commandes sûres et idempotentes — re-exécutables sans rien casser : la base et l'utilisateur ne sont créés que s'ils n'existent pas encore.
  • La détection plutôt que la configuration — Youcadb lit votre projet (langage, framework, drivers) et vous recommande le moteur adapté, plutôt que de vous faire tout renseigner à la main.
  • La sécurité par défaut — aucun mot de passe dans l'historique du shell, aucun secret affiché sur la sortie standard, et alerte si votre base est exposée sur 0.0.0.0 ou si un secret est versionné dans Git.
  • Multiplateforme — Linux, macOS et Windows, avec des guides d'installation et du démarrage natifs et une solution de repli Docker.

À qui s'adresse-t-il ?

  • Développeuses et développeurs (backend, fullstack, DevOps) qui souhaitent préparer leur environnement PostgreSQL/MySQL en quelques secondes, sans copier-coller de commandes SQL.
  • Équipes qui veulent un onboarding reproductible : les mêmes commandes, la même configuration, une base et un utilisateur créés à l'identique sur chaque poste de travail.

Fonctionnalités

  • Détection automatique de projet — analyse pyproject.toml, package.json, composer.json, Gemfile, pom.xml/build.gradle, *.csproj, docker-compose.yml, .env et en déduit le langage (Python, Node.js, PHP, Ruby, Java, .NET), le framework (FastAPI, Django, Express, Laravel, Rails, Spring Boot, ASP.NET Core…), le driver de base de données et le moteur recommandé. En présence de plusieurs manifests, les langages backend priment sur le front JavaScript ; les projets .NET imbriqués jusqu'à deux niveaux (ex. src/App/App.csproj) sont pris en compte.
  • Assistant interactif — parcours guidés pour init et create, avec valeurs par défaut pertinentes et repli clavier pour les terminaux non interactifs.
  • Opérations moteur idempotentes — crée les bases de données et utilisateurs uniquement s'ils n'existent pas encore ; met à jour les mots de passe en toute sécurité.
  • youcadb doctor — vérifie la présence des drivers, la connectivité au serveur, l'exposition 0.0.0.0, les secrets versionnés dans Git, et plus encore.
  • youcadb config — génère un fichier .env depuis le .youcadb.toml ; inspecte la configuration effective.
  • Sécurisé par conception — signale les mots de passe suivis par Git et les adresses d'écoute dangereuses ; n'écrit jamais les identifiants sur la sortie standard.
  • Multiplateforme — Linux, macOS et Windows (guides d'installation et de démarrage natifs, avec repli Docker).

Prérequis

Exigence Notes
Python ≥ 3.10 (testé jusqu'à 3.14)
PostgreSQL ou MySQL Installation locale ou via Docker
psycopg[binary] Requis pour PostgreSQL (pip install youcadb[postgres])
pymysql Requis pour MySQL (pip install youcadb[mysql])

Installation

pip install youcadb           # CLI de base (sans drivers)
pip install youcadb[postgres] # + psycopg (PostgreSQL)
pip install youcadb[mysql]    # + pymysql (MySQL)
pip install youcadb[all]      # les deux drivers

Prise en main rapide

# Initialise la configuration à la racine du projet
youcadb init --no-interactive

# Crée la base de données de manière interactive (nom, utilisateur, mot de passe)
youcadb create postgres

# Non interactif : noms et hôtes via les options, secrets via variables d'environnement
YOUCADB_PASSWORD=s3cret \
YOUCADB_ADMIN_PASSWORD=postgres \
  youcadb create postgres \
    --name my_app_db \
    --user app_user \
    --no-interactive

# État de la connexion
youcadb status

# Diagnostic complet de l'environnement
youcadb doctor

# Génère .env depuis le .youcadb.toml courant
youcadb config generate

# Affiche la configuration effective
youcadb config show

Commandes

Commande Description
youcadb Affiche l'état du projet ou une invitation à l'initialiser
youcadb init [--no-interactive] Détecte le projet et écrit .youcadb.toml
youcadb create <engine> [--name ...] [--user ...] Crée la base, l'utilisateur et accorde les permissions
youcadb status Affiche l'état de la connexion
youcadb doctor Diagnostic complet (driver, serveur, config, sécurité)
youcadb config generate [--force] Génère .env depuis .youcadb.toml
youcadb config show Affiche la configuration active

Consultez youcadb <commande> --help pour le détail des options.


Configuration

Youcadb enregistre ses réglages dans .youcadb.toml à la racine du projet :

[project]
  name = "myproject"

[database]
  engine = "postgres"
  host   = "localhost"
  port   = 5432
  name   = "myproject"
  user   = "app_user"
  password = "s3cret"   # uniquement si stocké dans le fichier

Les fichiers .env générés sont ajoutés au .gitignore par défaut.


Mots de passe & sécurité

Youcadb n'accepte jamais de secrets via les options de la ligne de commande : les mots de passe ne peuvent pas fuiter dans l'historique du shell. Ils sont fournis de manière interactive (saisie masquée) ou via les variables d'environnement en contexte non interactif :

Secret Variable d'environnement
Mot de passe de l'utilisateur applicatif YOUCADB_PASSWORD
Mot de passe administrateur YOUCADB_ADMIN_PASSWORD

Les fichiers .env générés par youcadb config generate sont ignorés par Git, et youcadb doctor émet un avertissement lorsqu'un mot de passe est suivi par Git ou lorsque la base est exposée sur 0.0.0.0. Les mots de passe ne sont jamais affichés sur la sortie standard : config generate et config show les affichent masqués (:***).


Versions de Python

Le projet cible Python ≥ 3.10 et est testé en continu sur 3.10 à 3.14 (Linux), ainsi que sur macOS et Windows (Python 3.14) dans la matrice CI.

  • .python-version épingle la version de développement (3.14), lue par uv et pyenv.
  • Le code reste rétro-compatible 3.10 (requires-python = ">=3.10", target-version = "py310" pour ruff, python_version = "3.10" pour mypy).

Développement

git clone https://github.com/Fitiafenohaja/Youcadb.git
cd Youcadb
uv venv .venv --python 3.14   # ou : python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Passerelles de qualité

ruff check src tests             # lint
ruff format --check src tests    # format
mypy src/youcadb                 # typage
pytest tests/unit --cov=youcadb  # tests (couverture ≥ 80 % requise)

Tests d'intégration

Définissez les variables d'environnement d'une base réelle, puis lancez :

export POSTGRES_HOST=localhost POSTGRES_PORT=5432 \
       POSTGRES_USER=postgres  POSTGRES_PASSWORD=postgres
pytest tests/integration/test_postgres.py -v

Versions publiées

Pousser un tag v*.*.* (ou publier une Release GitHub) déclenche .github/workflows/release.yml et publie sur PyPI via Trusted Publishing (OIDC) — aucune clé API n'est stockée dans les secrets.

Configuration unique (PyPI) :

  1. Ouvrez les paramètres de publication PyPI → Add pending publisher.
  2. Renseignez : projet youcadb, propriétaire Fitiafenohaja, dépôt Youcadb, workflow release.yml, environnement pypi.

Créer une version :

git tag v0.2.0
git push origin v0.2.0

Contribution

Les contributions sont les bienvenues — voir CONTRIBUTING.md pour la mise en place et les directives.

Licence

MIT — voir LICENSE.

Release files for youcadb 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for youcadb 0.2.0
File Size Uploaded
youcadb-0.2.0.tar.gz 43.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for youcadb 0.2.0
File Interpreter ABI Platform
youcadb-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 79.3 kB

Release files / youcadb-0.2.0.tar.gz

Download URL youcadb-0.2.0.tar.gz
Size 43.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0c5896befec1d051e016c3c848d36d8ba8c87c13bfadf3d032330565700f3e5c
BLAKE2b-256 checksum
How to use checksums
b88314b36c64d30ef83fb1ec381addb8b3e25c77bf9d3d7cd4b4ca94aeb34974
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / youcadb-0.2.0-py3-none-any.whl

Download URL youcadb-0.2.0-py3-none-any.whl
Size 36.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f590c9143480e281695a5762aac941823ad67bd5cdb4c121a82b7bf43fc22e9f
BLAKE2b-256 checksum
How to use checksums
eb1d1e20aede91139c4c856342c8cebf508bd20f0d1bebb140f03585adf070a4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page