Files
2025-12-09 11:27:02 -05:00

75 lines
2.2 KiB
Python

"""
db.py
======
Module de gestion de la connexion MySQL pour le moteur de résultats.
Ce module est séparé pour éviter de dupliquer la logique de connexion
dans plusieurs fichiers Python. Si plus tard tu veux réutiliser cette
connexion dans d'autres scripts, tu n'auras qu'à importer get_connection().
"""
import mysql.connector
from mysql.connector import Error
# ---------------------------------------------------------------------------
# CONFIGURATION DE LA BASE DE DONNÉES
# ---------------------------------------------------------------------------
# ⚠ IMPORTANT :
# - Adapte ces valeurs à TON environnement (dev / prod).
# - Idéalement, tu peux plus tard les lire à partir d'un fichier
# (ex: info_serveur.txt) pour éviter de hardcoder les mots de passe.
# ---------------------------------------------------------------------------
DB_CONFIG = {
"host": "serveur-prod.progiweb.net",
"user": "ms1reader_bd", # ajuste au besoin
"password": "X~=v]lg-l]4,T2FF", # ajuste au besoin
"database": "ms1reader_centrale",
"port": 3306
}
TABLE_NAME = "reader_lectures"
def get_connection():
"""
Crée et retourne une connexion MySQL.
Returns
-------
mysql.connector.connection_cext.CMySQLConnection
Connexion déjà ouverte vers la base configurée dans DB_CONFIG.
Raises
------
mysql.connector.Error
Si la connexion échoue (mauvais host, user, password, etc.).
"""
return mysql.connector.connect(**DB_CONFIG)
def test_connection():
"""
Petit utilitaire pour tester rapidement la connexion.
Tu peux exécuter ce fichier directement :
python -m engine.db
"""
try:
cnx = get_connection()
if cnx.is_connected():
print("[OK] Connexion MySQL réussie.")
else:
print("[ERREUR] Connexion MySQL NON établie.")
except Error as e:
print(f"[ERREUR] Mysql : {e}")
finally:
try:
if cnx and cnx.is_connected():
cnx.close()
except NameError:
# cnx n'existe pas si la connexion a échoué avant son affectation
pass
if __name__ == "__main__":
test_connection()