Changes to "Documentation développeur" between 2022-08-25 22:20:12 and 2022-09-20 22:54:25

78
79
80
81
82
83
84

85










86
87
88
89





90
91
92
93
94
95
96
78
79
80
81
82
83
84
85

86
87
88
89
90
91
92
93
94
95
96
97
98

99
100
101
102
103
104
105
106
107
108
109
110







+
-
+
+
+
+
+
+
+
+
+
+



-
+
+
+
+
+








Parce que c'est une manière simple d'avoir toutes les données de l'application regroupées au même endroit, et que l'application puisse gérer ses propres imports / exports et sauvegardes. De même cela simplifie grandement l'installation pour les débutants : rien à configurer de technique.

SQLite est une base de données très puissante et rapide qui offre de nombreuses possibilités avancées. L'avantage principal est que la base de données est comprise en un seul fichier, simplifiant sa gestion et réplication. Enfin, sa résilience et ses performances ne sont plus à prouver, d'autant plus maintenant qu'elle est la base de données la plus utilisée au monde. En se concentrant sur une seule base de données il est possible d'obtenir des améliorations et simplifications qu'il ne serait pas possible d'avoir en devant rester générique pour fonctionner avec plusieurs bases de données.

De fait il n'est pas prévu de permettre d'utiliser une autre base de données, les avantages à une telle possibilité sont bien moindres comparés à tous les inconvénients.

#### SQLite a des risques de pertes de données ?
Enfin, SQLite existe depuis plus de 20 ans, est très stable et les développeurs de SQLite pensent le supporter jusqu'en 2050 au minimum, ce qui en fait une plateforme de choix pour l'avenir. Il est également la base de données [la plus utilisée au monde](https://www.sqlite.org/famous.html), dans 2 milliards de téléphones, des milliards d'ordinateurs, des avions, etc.

Non, à moins de l'utiliser sur du NFS. Voir [comment corrompre une base de données SQLite](https://www.sqlite.org/howtocorrupt.html).

SQLite est la base de données la plus utilisée au monde, elle est dans tous les téléphones, tous les ordinateurs, mais aussi dans des voitures, des avions, des satellites, etc. Voir [utilisations célèbres de SQLite](https://www.sqlite.org/famous.html) et [utilisations les plus courantes de SQLite](https://www.sqlite.org/mostdeployed.html).

C'est aussi la base de données la plus testée au monde.

Elle est très stable et sûre. Depuis la création de Garradin en 2011, et sur des milliers d'association, aucune donnée n'a été perdue à cause de SQLite.

Pour info, MariaDB/MySQL et PostgreSQL stockent aussi leurs données dans des fichiers, et si l'un deux est corrompu, les données seront également perdues, c'est commun à toutes les bases de donnée ;)

#### Les performances de SQLite ne sont pas plus mauvaises que celles de MySQL ou PostgreSQL ?

Cela dépends de l'utilisation. Pour Garradin, SQLite convient parfaitement et à ce jour nous n'avons pas eu de problème avec les 2000+ associations gérant 50.000+ membres :)
Cela dépend de l'utilisation. Pour Garradin, SQLite convient parfaitement et à ce jour nous n'avons pas eu de problème avec les 5000+ associations gérant 150.000+ membres :)

Généralement SQLite est beaucoup plus rapide que les autres bases de données, car il n'y a pas de connexion réseau à faire : dans une base de données de type MySQL chaque requête coûte quelques millisecondes car il faut contacter le serveur de base de données et attendre sa réponse. Avec SQLite la base de données est sur la même machine : pas de réseau, et chaque requête ne coûte quasiment rien (sans prendre en compte la complexité de la requête).

[D'autres personnes ont mené des tests](https://victoria.dev/blog/sqlite-in-production-with-wal/) et par défaut SQLite peut offrir des performances très correctes sur un VPS bas de gamme : jusqu'à 400 écritures par seconde. Pour Garradin 95% des requêtes sont en lecture, et dans la majorité des cas il n'y a jamais plus de 2 ou 3 requêtes par seconde. En réalité cela veut dire qu'une association ne rencontrerait des problèmes qu'avec plusieurs centaines de milliers, ou millions d'utilisateurs.

#### Pourquoi Fossil  et pas Git ?

Fossil est un gestionnaire de projet décentralisé complet. Ce n'est pas juste un DVCS comme Git mais un véritable gestionnaire de projet incluant un wiki, une gestion de tickets, une interface web, une gestion d'utilisateurs, etc etc. Git, SVN, Mercurial et autres ne sont que des DVCS : ils ne permettent de versionner que le code.

De plus Fossil est bâti sur SQLite et est l'œuvre de l'auteur de SQLite, cela fait de lui le gestionnaire de version le plus robuste qui soit, et le stockage de ses données est simplissime !