QUA-001, volet dialecte.
`postgresql://` ne veut pas dire "le pilote installe" : SQLAlchemy y lit
psycopg2 et importe ce module a la creation du moteur. requirements.txt
epingle psycopg 3 (`psycopg[binary]`) et pas psycopg2. Une installation
propre demarree sur cette URL leve donc
ModuleNotFoundError: No module named 'psycopg2'
avant la premiere requete. Verifie dans le .venv du depot, et c est
exactement la forme que Render distribue -- celle que docs/deployment.md et
docs/database-restore.md donnaient en exemple.
normalise_database_url() nomme le pilote quand l URL n en nomme pas.
`postgres://` (alias hérite, abandonne par SQLAlchemy en 1.4) est traite de
meme. Une URL qui nomme deja son pilote est laissee telle quelle, y compris
`postgresql+psycopg2://` : un environnement qui a psycopg2 garde le choix.
La normalisation a lieu apres l application de la configuration passee en
argument, pour couvrir aussi les appels de test. backup.py n avait pas
besoin d etre touche : il retirait deja le suffixe +pilote.
Documentation alignee sur les trois fichiers qui donnaient l exemple, dont
docs/deployment.md qui proposait sqlite:/// pour DATABASE_URL alors que
create_app refuse de demarrer sans PostgreSQL.
Reste de QUA-001, dit franchement
- les trois paquets parasites (dotenv, login, discord) ne sont plus dans
requirements.txt : deja retires. psycopg est deja epingle.
- la consolidation vers des groupes de dependances n est PAS faite. Le
deploiement est un miroir de fichiers lftp sans etape de construction ;
les groupes PEP 735 demandent pip >= 25.1 sur une machine dont on ne
peut pas verifier la version d ici. A revoir avec OPS-011.
14 tests, dont trois qui prouvent que l echec est reel et non theorique.
Co-Authored-By: Claude Opus 5 <[email protected]>
34 lines
1.2 KiB
Bash
34 lines
1.2 KiB
Bash
# Team Tryouts Application - Environment Variables
|
|
# Copy this file to .env and fill in the values for production
|
|
|
|
# Security Configuration
|
|
# Generate a secure random secret key: python -c "import secrets; print(secrets.token_hex(32))"
|
|
SECRET_KEY=flask_app_secret_key
|
|
|
|
# Set to 'true' in production to enable secure cookies (requires HTTPS)
|
|
SESSION_COOKIE_SECURE=false
|
|
FORCE_HTTPS=false
|
|
|
|
# Flask Debug Mode - Set to 'true' only in development
|
|
FLASK_DEBUG=true
|
|
|
|
# Discord Bot Token (required for notifications)
|
|
# This is the UdeS Esports BOT token, it will send notifications to people that have their
|
|
# Dicord_User_ID in the db / remove if you don't want discord notifs.
|
|
DISCORD_BOT_TOKEN=my_discord_bot_token
|
|
|
|
# Discord OAuth2 Configuration (for "Connect Discord" on sign-up page)
|
|
# Create an application at https://discord.com/developers/applications
|
|
DISCORD_CLIENT_ID=
|
|
DISCORD_CLIENT_SECRET=
|
|
DISCORD_REDIRECT_URI=http://localhost:5000/auth/discord/callback
|
|
|
|
#where to find the db (hosted on render for now)
|
|
#Forme attendue : postgresql://utilisateur:motdepasse@hote:5432/base
|
|
#Le pilote psycopg 3 est nomme automatiquement par create_app().
|
|
DATABASE_URL=URI_vers_db_posgres
|
|
|
|
|
|
#Where the app will be hosted (corresponds to: localhost:5000 in local)
|
|
HOST=127.0.0.1
|
|
PORT=5000 |