Dolibarr : MariaDB ou PostgreSQL?

Bonjour à tous,

Lançant mon entreprise et étant nouveau dans le monde des ERP, Dolibarr me plait énormément. Je suis un utilisateur Linuxien (qui débute encore, depuis 4ans) et j’adore la philosophie et le système de module de Doli, mais je me pose une question qui me semble essentielle et qui en apparence paraît simple, mais pour laquelle je n’arrive pas à obtenir de vrai réponse concrète sur la toile, y compris sur le forum enfin à part peu être un message sur Mysql et postgreSQL, mais qui est resté sans réponse.

Quel base de donnée est le plus efficace et la mieux géré par Dolibarr, MariaDB ou PostgreSQL ?

J’imagine que l’on vas me dire ça dépend, je lis souvent que MariaDB est plus réactif et moins lourd, et PostgreSQL est plus complet mais demande plus de patate.

Mais en parcourant certains benchmark, ce n’est pas toujours aussi évident. De plus commencer sur une MariaDB pour passer ensuite à PostgreSQL si l’entreprise grossi et à besoin de plus de fonction, me parait aussi… Un peu risqué. J’aimerai ne pas à avoir à faire ce genre de maneuvre. J’aimerai partir sur du solide dès le départ et avoir juste de l’entretient sans sueur froide si vous voyez ce que je veux dire, c’est une petite boîte, je suis solo, j’ai envie que ça fonctionne avec le moins de contrainte possible. Peu être est ce aussi une question de coût d’entretien.

Voici donc en gros mon activité avec ses objectifs :
Assemblage de PC Linux et vente par correspondance.
Donc en soit, on passe sur ma boutique en ligne, on achète, je commande des pièces à des fournisseurs, je monte, et j’envoie.

Mes besoins :
Dolibarr + Boutique en ligne Wordpress, Doliconnect pour faire fonctionner les fiches clients et le stock ensemble et peu être woocommerce pour le système de paiement.

Qu’est ce que vous en dite ? PostgreSQL ? Ou bien dès que l’on vas utiliser Wordpress c’est une mauvaise idée ? Où au contraire, c’est ce qu’il faut faire.

Merci beaucoup, par avance.

Bonjour,

la réponse est : le moteur de base de données avec lequel vous êtes familier.

Wikipedia utilise MariaDB, Samsung a délaissé Oracle pour migrer vers MariaDB Samsung SDS Cuts Database Costs with MariaDB | MariaDB
MariaDB gère très bien les gros volumes de données. Un benchmark ne sert pas à grand chose, à part créer des fils de discussion sur des forums.

1 « J'aime »

Merci beaucoup pour votre réponse (et en si peu de temps :blush:) c’est très intéressante de voir que MariaDB peu gérer du lourd.

Et bien en fait je ne suis familier avec aucune, je débute là dedans et honnêtement même si ma geekerie va faire que je vais jouer avec sur une KVM pour tester Doli et wordpress, je vais laisser ça dans les mains d’un presta pour me concentrer sur l’activité.

Donc en gros, MariaDB ça fait bien le boulot. Mais en fait peu importe d’après vous, y compris sur les interactions entre Doli, Wordpress et les modules.

Pour info voici le bench que j’avais en référence :
sqlpipe.com - postgresql-vs-mariadb

Bonjour
Attention PostgreSQL est peu utilisé et peu de modules complémentaires testés sur cette BDD ce qui peut fortement limiter les possibilités… Et pour le Cœur de Dolibarr même risque en terme de dysfonctionnement.

3 « J'aime »

Je suis un peu surpris de voir que MySQL/MariaDB à la reputation de ne pas pouvoir gerer de gros volume.
Ayant travailler pour un hébergeur web j’ai geré des bases de données très importante via MariaDB (plusieurs centaines de GO et des millions de lignes) sans le moindre soucis, tout dépends de la configuration et optimisation tant logicial que materiel

1 « J'aime »

Je confirme ne pas tester mes modules avec postgresql, d’abord parce que cela prend du temps, ensuite que je n’ai pas nativement postgres au niveau de mon environnement de développement (wampserver) et je ne me vois pas installer un setup juste pour tester un cas…

Enfin les faibles demandes de support sur ce sujet, je dois avoir une demande par an (à mettre en rapport d’une dizaine de contact chaque semaine), qui se règle rapidement avec l’aide du client (qui généralement connais son sujet).

Il est fort probable que mes modules fonctionnent avec postgres, juste que je ne teste pas cette configuration mais effectue des corrections si on me remonte des anomalies.

Je ne suis pas là pour dénigrer postgres ou mysql, mariadb voir meme sql server, juste que la grande majorité des utilisateurs de dolibarr utilisent mariadb ou mysql et que je préfère pragmatiquement me concentrer sur cette plateforme.

1 « J'aime »

Pour comparer des performances de bases de données on utilise NOPM (new orders per minute) et non pas (TPM transactions per minute).
Il n’a pas d’intérêt ce bench.

1 « J'aime »

Ayant PostgreSQL et Dolibarr en production de mon côté (principalement par idéologie et pour le tooling), je confirme qu’il vaut mieux utiliser MariaDB si l’objectif est d’avoir le moins de travail/blocage possible. Avec PostgreSQL, j’ai régulièrement des problèmes que je dois corriger, d’abord sur les modules mais même également sur le core (exemple: expensereportsjournal: fix empty IN () SQL request by alexandre-janniaux · Pull Request #32574 · Dolibarr/dolibarr · GitHub) donc l’investissement est nécessaire pour pouvoir suivre et corriger au fur et à mesure, et c’est généralement la fonctionnalité que tu as besoin en urgence qui va se retrouver cassée. :wink:

Ensuite, Wordpress va également utiliser uniquement MariaDB, donc ça peut être un argument pour commencer, mais je conseille de rapidement migrer vers des instances de base de données indépendantes pour:

  • pouvoir mettre à jour le moteur de base de données sans casser le site + la gestion interne, et ne pas dépendre du minimum des versions supportées.
  • pouvoir facilement snapshooter et restaurer l’entièreté du moteur rapidement.
  • éviter les problèmes de droits des utilisateurs qui pourraient arriver et donnerait à quelqu’un qui attaquerait le wordpress les outils pour récupérer les données qui doivent être RGPD/stratégique comme la base de données client.

Après si tu es prêt à corriger des problèmes éventuels, je ne vois pas d’autres inconvénients à utiliser PostgreSQL pour Dolibarr. Les interactions entre les services se font par des APIs, donc restent indépendantes du moteur. Et ça permet également d’avoir plus de gens qui font du retour dessus. :wink:

1 « J'aime »

Tu viens de démontrer mon post précédent, à titre d’information, je dois donner une formation sur SQL Server début avril et je compte profiter de la préparation de mon cours pour valider ce serveur sur Dolibarr : cela sent la dizaine de PR sur ce sujet en mars…

1 « J'aime »

Et je ne suis pas le seul. :slight_smile:

1 « J'aime »

Merci infiniment pour vos réponses et vos précieux retours très complets, me voilà bien plus éclairé sur la situation et le choix à faire.

Que ce soit sur l’assistance, les modules complémentaires, bench utiles, le dialogue avec wordpress ainsi que l’hebergement, je suis bien mieux armé pour comprendre l’ensemble et faire les bons choix !!

Ça sera donc MariaDB :grinning: sans hésitation.

Un énorme merci à tous d’avoir pris le temps.
:heart_on_fire:

1 « J'aime »

Si la question est rapporté à Dolibarr même, aucune différence.
Les 2 donneront les même résultats et même performances.
La question doit donc etre prise sur un autre angle, quelles sont les compétences internes, quel SGBD est le plus facilement administrables pour toi ?

Bonjour et merci @eldy alors je suis complètement noob dans le domaine, je voulais surtout savoir quoi dire dans ma demande au prestataire d’hébergement et de voir dans quelle mesure il peu en assurer la gestion (c’est un tout petit site de vente pour le moment). Mon objectif étant d’utiliser Dolibarr avec le moins de souci possible et visiblement, pour utiliser wordpress avec des modules de paiement ainsi que des modules du dolistore il semble plus prudent de faire une installation en mariadb sur l’ensemble. Après si tu as un avis différent, je serai toujours preneur, je cherche aussi à comprendre un peu comment ça marche, mais par exemple je ne sais absolument pas ce qu’est un SGBD, même si wikipédia m’a permis de m’en faire une idée. Est ce un logiciel supplémentaire ? Ou un langage d’interaction ou de configuration pour que les différentes briques parlent entre elle ?

Un petite exemple de souci que l’on peu rencontrer avec postgres.

Je viens d’avoir un retour client avec l’un de mes modules ne fonctionnant pas sur son environnement. Après vérification, il s’agit d’une base de données postgres…
Je décide de me monter dans l’urgence un environnement de tests, on oublie wampserver qui ne gère que mysql et l’on passe gentiment avec docker (après avoir bien poncé la configuration de php pour le rendre compatible…).
Au final une erreur simple, l’usage de simple quote au lieu de double dans une requête SQL (pour préciser, j’ai utilisé ceci ’ à la place de cela " ) qui fait tout planter …

Alors oui, vous pouvez me dire que je ne teste pas assez mes modules, mais entre

  • les versions de php (2 différentes)
  • les versions de dolibarr (3 différentes)
  • les incompatibilités entre modules d’autres tiers comme multicompany (du calme Régis, ce n’est pas une critique), voir les miens.

Si je rajoute postgres, voir SQL server à l’équation …
Ce n’est plus des semaines qui me seront nécessaire pour tester mes modules à chaque monté de version majeur de dolibarr, mais des mois, ce ne sera plus rentable ou en pratiquant des prix de modules incompatibles avec mes valeurs et celle de Dolibarr…

Et ne venez pas me parler de tests unitaires qui ne sont que des parapluies lorsqu’il fait beau temps.

1 « J'aime »

Note: j’ai rajouté et documenté ce qu’il faut upstream pour démarrer un environnement de dev depuis docker compose avec mariadb ou postgresql, et rajouté un bout pour comment tester avec des modules externes.

edit: évidemment, j’ai oublié de coller le lien dolibarr/dev/build/docker-dev at develop · Dolibarr/dolibarr · GitHub

De mon expérience, la plupart des problèmes lié à une incompatibilité postgres arrivent assez facilement, ie. pas dans une branche très complexe, donc rajouter un conteneur qui va tester l’ensemble des requêtes possibles en GET ou POST en tant que smoke test est déjà bien plus que suffisant et beaucoup plus rapide à écrire, tout en fonctionnant pour tout SGBD utilisé et toute version de dolibarr utilisée. Avec un framework de router, ça aurait même été automatique.

Maintenant, ça ne règle pas le problème de rentabilité, ni les soucis entre modules, ni le temps passé dès lors qu’il y a un soucis détecté. Mais c’est aussi possible d’essayer de relever l’ensemble des problèmes de ce type avec des exemples pour voir de quel côté il faudrait améliorer la situation upstream.

2 « J'aime »