https://beta.gouv.fr/startups/portail-rse.html https://portail-rse.beta.gouv.fr
- Installer
pipenv
- Créer le fichier de variable d'environnement
.env
à partir du fichier d'exemple.env.example
. Si nécessaire, il est possible d'activer l'intégration avec Sentry en local en renseignant la variable d'environnementSENTRY_DSN
. - Installer le projet avec :
make install
ℹ️ Il est nécessaire d'installer le paquet système libpq-dev
pour avoir pg_config
.
En cas de problème avec pipenv
, il est possible de l'installer dans un environnement virtuel :
python3 -m venv venv
. ./venv/bin/activate
pip install pipenv
# puis exécuter les commandes au début de ce paragraphe
- Lancer le projet avec :
make migrate
make run
-
Le service est disponible sur http://127.0.0.1:8000
-
Pour lancer une commande du projet django en local :
pipenv run python3 impact/manage.py my_command
Pour générer les nouvelles migrations éventuelles et les appliquer :
make migrations
make migrate
- Exécuter les tests en local avec :
make test
- Formater le code. Le projet utilise pre-commit pour vérifier le formattage du code automatiquement à chaque commit.
La cible
make install
l'installe directement.
scalingo --app ${PROJET} run python3 impact/manage.py migrate
Cette commande est jouée automatiquement lors de tout déploiement.
Pour lister les migrations jouées en recette :
scalingo --app ${PROJET} run python3 impact/manage.py showmigrations
Pour défaire des migrations déjà appliquées en recette avant de déployer une branche où l'historique des migrations est différent/a changé (et ainsi éviter les exceptions de type InconsistentMigrationHistory au déploiement et d'avoir à supprimer toutes les données) : https://docs.djangoproject.com/fr/4.1/ref/django-admin/#django-admin-migrate
scalingo --app ${PROJET} run python3 impact/manage.py migrate NOM_DE_L_APP_DJANGO NOM_DE_LA_DERNIERE_MIGRATION_A_LAQUELLE_ON_SOUHAITE_REVENIR
Pour supprimer toutes les données en recette :
scalingo --app ${PROJET} pgsql-console
drop owned by ${PROJET_USER};
Penser à créer à nouveau le super utilisateur une fois l'application redéployée/les migrations rejouées avec :
scalingo --app ${PROJET} run python3 impact/manage.py createsuperuser
Il est possible de connaître en temps réel la consommation CPU et mémoire avec la commande :
scalingo --app ${PROJET} stats