# API ## postgres ```bash # Acerder à postgres sudo su - postgres # itintialisation de la directory data initdb -D /var/lib/postgres/data # Création d'un user createuser --interactive # Création d'une base de donnée createdb myDatabase # aller dans la base de donée psql -d myDatabaseName ``` ## SQLAlchemy ### engine ```python # crée un eengine pour se copnnecter à une base de données avec un user engine = create_engine( "postgresql+psycopg2://postgres:password@localhost:5432/postgres", isolation_level="", ) ``` #### isolation_level | Niveau | Description | Effets | | ------------------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | **READ UNCOMMITTED** | Peut lire des données non validées par d’autres transactions. | PostgreSQL ne le supporte pas vraiment, il se comporte comme READ COMMITTED. | | **READ COMMITTED** (par défaut) | Chaque requête ne voit que les données validées à ce moment-là. | Si une autre transaction change quelque chose après que tu aies commencé, tu ne le vois qu’à la prochaine requête. | | **REPEATABLE READ** | Toutes les requêtes dans la même transaction voient les mêmes données. | Tu vois un “instantané” cohérent pendant toute la transaction. Les nouvelles modifications des autres transactions ne sont pas visibles. | | **SERIALIZABLE** | Niveau le plus strict. Les transactions se comportent comme si elles étaient exécutées l’une après l’autre. | Empêche tous les phénomènes d’anomalies concurrentes (lecture fantôme, etc.), mais peut provoquer des erreurs de serialization si conflit. | | **AUTOCOMMIT** | Pas vraiment un niveau d’isolation | Exécute cette commande immédiatement, sans transaction