42 lines
2.5 KiB
Markdown
42 lines
2.5 KiB
Markdown
# 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
|