Actuellement, le stockage principal pour les messages du forum, les comptes utilisateurs, etc., est la base de données PostgreSQL.
Je suggère, s’il vous plaît, d’utiliser des fichiers texte simples comme format de stockage principal pour le contenu du forum.
En raison de problèmes de base de données difficiles à résoudre (difficiles pour moi en tant qu’utilisateur), je pense que le risque de perdre toutes les données du forum est élevé en raison du format binaire apparemment/effectivement opaque des bases de données SQL. Il semble que personne ne puisse réparer une base de données gravement endommagée (ce qui ne serait pas un problème visible comme le problème ci-dessus) ou que cela soit trop coûteux pour les non-spécialistes.
Je suis certain qu’il existe de très bonnes raisons d’utiliser des bases de données telles que PostgreSQL, notamment pour la performance. Cependant, je propose un format de texte lisible par l’homme pour les sauvegardes, en dernier recours d’urgence, au cas où les fonctionnalités de sauvegarde et de restauration de la base de données seraient corrompues ou défectueuses.
Vous n’avez probablement pas besoin d’être convaincu de l’incroyable puissance de Git, vous l’utilisez déjà. Le contenu du forum pourrait être stocké dans des sous-dossiers et de nombreux fichiers texte. Ainsi, l’ensemble du dossier pourrait être placé sous contrôle de version Git. Si des bogues sont introduits, il est beaucoup plus facile de tracer quel commit en est la cause.
Puisque les bases de données (peu fiables, complexes) seront probablement toujours nécessaires, ces fichiers texte (simples, fiables) pourraient servir de modèle pour recréer la base de données « à partir du code source ». Si le stockage des nouveaux messages dans des fichiers texte est trop lent en temps réel, vous pouvez activer l’option de sauvegarde dans des fichiers texte à la demande ou lorsque le système est inactif (écriture différée / cache d’écriture).
Les données publiques (messages publics du forum) seraient dans un dossier différent des données privées des utilisateurs, comme les mots de passe hachés. L’avantage supplémentaire serait que la partie publique (les messages) pourrait même être publiée sur un dépôt Git distant pour ceux qui trouvent cela utile (archivage). Les données des utilisateurs resteraient dans un dépôt Git local uniquement (ou un dépôt Git distant, privé et chiffré personnalisé).