Les développeur·ses de BookWyrm et les gestionnaires d'une instance peuvent utiliser le script bw-dev
pour des tâches courantes. Cela peut simplifier vos commandes en les rendant plus courtes, plus faciles à mémoriser et diminuer le risque d'erreur.
Une fois que vous avez installé Bookwyrm en production ou en développement, vous pouvez exécuter le script à partir de la ligne de commande avec ./bw-dev
suivi de la sous-commande que vous voulez exécuter.
Ouvez une session interactive bash
dans le conteneur docker web
.
Équivalent à docker-compose build
.
Ouvrir un shell de base de donnée Postgres interactif. On espère que vous savez ce que vous faites.
Exécuter une commande arbitraire (représentée ci-dessus par args
) dans le conteneur web
.
Équivalent à docker-compose run --rm web
.
Exécuter une commande arbitraire dans le conteneur web
(représenté ci-dessus par args
) avec les ports exposés. Ceci est utile si vous voulez exécuter des tests pdb
parce que runweb
n'affiche pas l'invite de commande pdb
.
Équivalent à docker-compose run --rm web
.
Ouvrir un shell Django interactif à l'intérieur du conteneur docker web
. Cela sert à exécuter directement des commandes Django.
Démarrer ou redémarrer des conteneurs Docker, en incluant optionnellement des arguments (représentés ci-dessus par args
). Équivalent à docker-compose up --build [args]
Initialiser une base de données.
Cette commande n'est pas disponible sur la branche de production
.
Exécute la commande Django makemigrations
à l'intérieur du conteneur Docker. Si vous avez changé la structure de la base de donnée dans une branche de développement, vous allez devoir exécuter cette commande pour que vos changements s'appliquent. Facultativement, vous pouvez préciser quelle migration exécuter, par exemple ./bw-dev makemigrations bookwyrm 0108
Exécute la commande Django migrate
à l'intérieur de votre conteneur Docker. Il faut toujours faire ceci après makemigrations
.
Cette commande n'est pas disponible sur la branche de production
.
Réinitialise la base de données. Cette commande va supprimer votre base de données Bookwyrm en entier, et va ensuite initialiser une nouvelle base de donnée et effectuer toutes les migrations. Vous devriez supprimer tous les fichiers de migration récents que vous ne voulez pas exécuter avant d'exécuter resetdb
.
Compile tous les thèmes BookWyrm, qui sont des fichiers *.scss
répertoriés dans bookwyrm/static/css/themes
.
Migre les ressources statiques vers un conteneur Docker ou un compartiment compatible S3, selon le contexte.
Génère des images de prévisualisation pour le site, les utilisateur-ice-s et les livres. Si vous avez une grande base de données, cela peut prendre un temps conséquent. Voir Optional features : Générer les images de prévisualisation
Supprime les images de prévisualisation pour les comptes externes. Voir Optional Features : Supprimer les images de prévisualisation pour les comptes externes
Génère les miniatures pour les couvertures de livres.
Rafraîchit les flux Redis (flux utilisateurs). Vous n'aurez généralement pas besoin d'exécuter cela à moins qu'une erreur n'efface vos flux utilisateurs pour une raison ou une autre. Vous pouvez préciser quel flux en particulier en utilisant l'argument --stream
.
Rafraîchit le cache Redis des listes. Vous n'aurez généralement pas besoin d'exécuter cela à moins qu'une erreur n'efface les listes de vos utilisateur-ice-s pour une raison ou une autre.
Rafraîchit la liste des comptes suggérés pour tous-tes les utilisateur-ice-s. Vous pouvez exécuter cela afin d'actualiser les suggestions.
Redémarre le conteneur Docker celery_worker
.
Lors de changements sur la branche production
, vous pouvez mettre à jour votre instance sans la rendre indisponible.
Cette commande git pull
les dernières mises à jour de la branche production
, construit des images docker si nécessaire, exécute les migrations Django, met à jour les fichiers statiques et redémarre tous les conteneurs Docker.
Récupère le code admin utilisé pour enregistrer l'admin initial sur une nouvelle instance BookWyrm.
Par défaut, BookWyrm stocke localement les ressources statiques (favicon, avatar par défaut, etc.) et les médias (avatars, couvertures de livres, etc.), mais vous pouvez utiliser un service de stockage externe pour ces fichiers. BookWyrm utilise django-storages pour gérer le stockage externe, tel que les services compatibles S3, Apache Libcloud ou SFTP.
Voir External Storage pour plus d'informations.
Migre tous les médias téléchargés d'une instance BookWyrm existante vers un compartiment compatible S3. À utiliser pour un premier téléchargement vers un compartiment vide.
Synchronise les médias nouvellement créés ou modifiés d'une instance BookWyrm existante vers un compartiment compatible S3. À utiliser pour s'assurer que tous les fichiers locaux ont été téléchargés vers un compartiment existant.
Copie un fichier JSON de règles CORS vers un compartiment S3, où filename
est le nom de votre fichier JSON (e.g. ./bw-dev set_cors_to_s3 cors.json
)
Ces commandes ne sont pas disponibles sur la branche production
.
BookWyrm utilise le formateur de code Black pour assurer la cohérence du code Python. Exécutez black
avant de valider vos modifications afin d'éviter que la tâche pylint
pour votre pull request n'échoue et ne vous rende triste.
BookWyrm utilise Prettier pour assurer la cohérence du code JavaScript. Exécutez prettier
avant de valider vos modifications de scripts afin de formater automatiquement votre code.
BookWyrm utilise Stylelint pour assurer la cohérence des fichiers CSS. Exécutez stylelintprettier
avant de valider vos modifications de scripts afin de formater automatiquement votre code.
Cette commande exécute tous les formateurs de code (black
, prettier
, et stylelint
) à la suite.
Supprime tous les conteneurs Docker arrêtés.
Correspond à :
docker-compose stop
docker-compose rm -f
Génère les fichiers de messages pour toutes les chaînes de traduction. Après avoir exécuté makemessages
, vous devez exécuter compilemessages
pour compiler les traductions. Voir makemessages dans Django.
Compile les fichiers de traduction. Voir compilemessages dans Django.
Exécute les tests avec pytest
.
Désactive l'authentification à deux facteurs pour un utilisateur donné.
Confirme l'adresse e-mail d'un-e utilisateur-ice et l'active.