·4 min de lecture

Comment comparer des bases de données SQLite côte à côte sur Mac

Après une migration, un changement de schéma, ou une synchronisation de données, vérifier que deux bases de données SQLite correspondent est fastidieux sans moyen de visualiser les deux simultanément.

Vous avez exécuté une migration de données et devez en vérifier les résultats. Ou vous comparez une base de données de développement à une copie de staging. Ou un collègue vous a envoyé sa version d'une base de données partagée et vous devez repérer les différences. Dans chaque cas, la tâche est la même : regarder deux bases de données SQLite et déterminer ce qui a changé. Sur Mac, la plupart des outils rendent cela étonnamment difficile parce qu'ils sont conçus autour d'une seule connexion de base de données.

Pourquoi comparer des bases de données est habituellement pénible

Avec la CLI sqlite3, comparer deux bases de données signifie ouvrir deux fenêtres de terminal, exécuter la même requête dans chacune, et parcourir visuellement le résultat à la recherche de différences. Pour de petites tables, cela fonctionne. Pour des tables avec des centaines de lignes et des dizaines de colonnes, c'est sujet aux erreurs et lent. Il n'y a pas de vue côte à côte, aucune mise en évidence des différences — juste deux flux de texte brut.

Certains développeurs utilisent sqldiff, un outil en ligne de commande qui produit les instructions SQL nécessaires pour transformer une base de données en une autre. Il est puissant pour les comparaisons scriptées mais produit un résultat SQL brut, pas une différence visuelle. Comprendre ce qui a réellement changé exige de lire des instructions INSERT, UPDATE et DELETE plutôt que de voir les données elles-mêmes.

La plupart des navigateurs de bases de données à interface graphique aggravent le problème en ne prenant en charge qu'une seule base de données à la fois. Vous ouvrez la base de données A, l'inspectez, la fermez, ouvrez la base de données B, et essayez de vous rappeler ce que vous avez vu dans la base A. Certains outils prennent en charge plusieurs connexions mais exigent une configuration manuelle pour chacune.

Ouvrez les deux bases de données côte à côte avec Tome

Tome est une application macOS basée sur les documents, ce qui signifie que chaque base de données s'ouvre dans sa propre fenêtre avec sa propre interface complète. Ouvrez deux bases de données et disposez-les côte à côte à l'aide de la vue Split View de macOS ou en glissant les fenêtres — de la même façon que vous compareriez deux fichiers texte.

Tome comparant deux bases de données SQLite côte à côte sur Mac

Comparaison visuelle des schémas

Avec les deux bases de données ouvertes, vérifiez la barre latérale de chaque fenêtre. La source a-t-elle des tables que la destination n'a pas ? Des index sont-ils présents dans une mais absents dans l'autre ? Un balayage visuel des deux barres latérales répond instantanément à ces questions.

Comparaison ligne par ligne

Ouvrez la même table dans les deux fenêtres et faites défiler les données. Triez les deux par la même colonne pour aligner les lignes. Les différences de nombre de lignes ou de valeurs de données deviennent visibles quand vous pouvez voir les deux grilles simultanément.

Interrogez chacune indépendamment

Chaque fenêtre a son propre éditeur de requêtes SQL. Exécutez la même requête d'agrégation dans les deux — SELECT COUNT(*) FROM users; — et comparez les résultats côte à côte. Écrivez des requêtes plus complexes pour vérifier des sommes, des moyennes, ou l'existence d'enregistrements spécifiques dans chaque base de données indépendamment.

Obtenez Tome sur le Mac App Store

Article suivant

Tome

Browse, query, and edit SQLite databases in a native Mac app.

Get Tome on the Mac App Store