OpenDBViewer 1.1.0

Posté par  (site web personnel) . Édité par bubar🦥, Xavier Teyssier, Davy Defaud et patrick_g. Modéré par patrick_g. Licence CC By‑SA.
53
29
août
2018
Base de données

Il y a presque un an, une dépêche annonçait le logiciel OpenDBViewer, sponsorisé par l’entreprise Jet1oeil et supervisé par moi‐même.

Il s’agit, comme son nom le suggère, d’un petit logiciel très léger écrit en C++/Qt pour lire et modifier les bases de données SQLite, MySQL et PostgreSQL. Le logiciel est sous licence GPL v3.

Avec la venue de stagiaires dans l’entreprise, nous avons pu développer de nouvelles fonctionnalités durant l’année afin d’encore améliorer son ergonomie.

Les fonctionnalités du logiciel sont :

  • compatibilité avec les systèmes d’exploitation GNU/Linux, macOS et Windows ;
  • compatibilité avec les bases de données SQLite, MySQL et PostgreSQL ;
  • coloration syntaxique SQL dans les feuilles de travail SQL ;
  • vue multiple des bases de données, tables et feuilles de travail.

Dont les nouveautés :

  • chargement de bases de données lourdes ;
  • chargement de bases SQLite via glisser‐déposer ;
  • historique des dix dernières connexions ;
  • modification de la base de données directement depuis la vue d’une table.

Capture d’écran

Nous utilisons surtout le logiciel avec SQLite sous GNU/Linux, alors nous sommes preneurs de retour d’utilisation sous Windows et macOS, afin de corriger les éventuels bogues.

Aller plus loin

  • # .

    Posté par  . Évalué à 8.

    Salut,

    Intéressant. PgAdmin (client officiel en gui pour postgres) est passé il y a quelques temps à la version 4 qui est une réécriture complète. Et pour l'instant, c'est pas très stable. La version 3 n'étant plus maintenue, la situation actuelle commence à être un peu délicate.

    Un logiciel minimaliste de ce genre peut donc dépanner.

    J'ai survolé le code, ça m'a l'air très propre, félicitations. Cette partie m'ayant un peu inquiété : ;)

    Avec la venue de stagiaires dans l'entreprise, nous avons pu développer de nouvelles fonctionnalités

    • [^] # Re: .

      Posté par  . Évalué à 7.

      J'ai survolé le code, ça m'a l'air très propre, félicitations. Cette partie m'ayant un peu inquiété : ;)

      Ils sont bien évidemment encadrés avec en particulier de la revue de code systématique pour assurer une continuité minimale dans la qualité du développement.

      • [^] # Re: .

        Posté par  . Évalué à 4.

        J'ai parfois également des stagiaires, et je me suis rendu compte que je mettais autant de temps (voire plus) à les aider à faire du code de qualité qu'à l'écrire moi-même.

        Effectivement, parfois l'aspect transmission de connaissance c'est sympa, mais si l'idée c'est de gagner du temps chez nous ça n'a jamais fonctionné. Peut-être que j'ai eu que des mauvais ceci dit. Ou qu'il faudrait que je me soigne pour supporter du code un peu dégueu.

        • [^] # Re: .

          Posté par  (site web personnel) . Évalué à 7.

          je mettais autant de temps (voire plus) à les aider à faire du code de qualité qu'à l'écrire moi-même.

          Il n'est pas sur que tu écrirais du code de la même qualité… Le faire écrire par quelqu'un d'autre t'oblige à la revue de code et le fait de lire du code d'un autre te fait toi aussi progresser dans tes propres critères de qualité.

          Bref, c'était pour élargir le débat ;-)

        • [^] # Re: Bons et mauvais stagiaires

          Posté par  (site web personnel) . Évalué à 10.

          J'ai parfois également des stagiaires, et je me suis rendu compte que je mettais autant de temps (voire plus) à les aider à faire du code de qualité qu'à l'écrire moi-même.

          Oui, j'ai eu beaucoup de stagiaires et je suis d'accord, cela ne m'a pas fait vraiment gagner de temps.
          Par contre, ils m'ont appris des choses que leurs professeurs leur avaient enseigné et je leur ai appris d'autres choses. C'est cet échange qui a été fructueux.

          Un de mes collègues me disait qu'il n'avait jamais eu de bons stagiaires. Il les faisait travailler sur des sujets qu'il ne maitrisait pas et que les stagiaires avaient beaucoup de mal à appréhender.
          De mon côté, je leur donnais des sujets que j'aurais aimé traiter. À part de rares exceptions, je n'ai eu que des bons stagiaires.

          Je pense que la compétence du maître de stage est très importante. Il ne doit donner que des travaux qu'il saurait faire et qu'il aimerait faire.

        • [^] # Re: .

          Posté par  . Évalué à 4.

          J'ai parfois également des stagiaires, et je me suis rendu compte que je mettais autant de temps (voire plus) à les aider à faire du code de qualité qu'à l'écrire moi-même […]

          J'ai quasiment envie de dire que c'est normal — bravo et merci entre-temps de consacrer ce temps à de la formation de qualité. [Opinion personnelle:] Notre monde moderne nous apprend à sacrifier la qualité (s'il n'y avait que ça, hélas) pour la rapidité (mais pas que…); la qualité de l'enseignement (c-à-d de la transmission de la connaissance) se fait dans les mêmes conditions. Et du coup on perd de vue que ceux que nous formons formeront à leur tour. Les stagiaires ont envie de savoir et nous nous devons de leur transmettre, du mieux que nous le pouvons, nos connaissances et notre savoir-faire. Quand on y pense, ça fait deux jobs à temps plein: transmettre et créer. On ne gagne peut-être pas du temps sur le fait mais ce qui sera gagné, c'est la qualité du savoir-faire de ceux qui vont nous succéder.

          Ou qu'il faudrait que je me soigne pour supporter du code un peu dégueu.

          AMHA ce serait plutôt aux autres de se faire soigner pour accepter du code dégueu contre tout bon sens sur le long terme ;-) .

  • # comparé à DBeaver

    Posté par  . Évalué à 8. Dernière modification le 29 août 2018 à 18:18.

    J'utilise DBeaver au bureau. J'aurais voulu savoir la raison qui vous a poussé a développer OpenDBViewer. Pour sa vélocité?
    DBeaver est très puissant d'un point de vue fonctionnalité (auto complétion…) et nombre de base de données prises en charges. Ses points faibles sont l'édition de tables (Alter) et la lourdeur JAVA.

    • [^] # Re: comparé à DBeaver

      Posté par  . Évalué à 4.

      J'utilise DBeaver aussi au taff et je le trouve tellement efficace que j'aurai du mal à m'en passer. Il a tellement de features trop bien.

      Par contre j'ai installé OpenDBviewer et je l'ai lancé et Whouahou !! trop rapide ! le truc se lance instantanément. les pages de table itou. Bref c'est surper rapide.
      Du coup pour mes besoins perso (que du postges + petite machine + direct en prod) je me dit que ça peut le faire mais pour le taff il manque bien trop de features, pas de tunneling, pas toutes les features CSV, Pas la couleur des environnements, pas de…

      Je ne sais pas pourquoi ils ont développés OpenDBviewer mais moi je l'utiliserai peut-être pour sa vélocité. Pour tout autre raison DBeaver sort gagnant.

    • [^] # Re: comparé à DBeaver

      Posté par  . Évalué à 3.

      On n'est pas vendredi mais dès que y a Java en général c'est beaucoup plus lent, ça prend plus de mémoires, l'IHM n'est pas "native" on voit que c'est du java
      Raison pour laquelle quand j'ai le choix je ne prends pas le soft fait avec Java<\troll>

      • [^] # Re: comparé à DBeaver

        Posté par  . Évalué à 1. Dernière modification le 31 août 2018 à 12:01.

        Je cherchais un remplaçant à pgAdmin3 mais je n'ai pas pu me faire à l'interface DBeaver. (pourtant utilisateur d'éclipse)

        j'ai eu pas mal de soucis avec pgAdmin4.
        (mais la dernière fournée 4.3 avec une installation simplifiée en mode client est plus convaincante)

        je vais tester ce nouvel outil.

    • [^] # Re: comparé à DBeaver

      Posté par  (site web personnel) . Évalué à 4.

      Alors pour répondre à la question on a développé ce logiciel pour répondre à plusieurs contraintes du à notre utilisation en production :
      - Rapidité : Je pense que C++ reste le mieux pour créer des applications très réactive.
      - Peu de dépendance : On a juste besoin de Qt, qui est fourni avec l'installeur (sous Windows et Mac). Pas besoin d'avoir Java ou Python, où une autre dépendance un peu lourde.
      - Léger : Rapide à transmettre sur des postes avec une faible connexion internet.
      - Multiplateforme : Besoin que ça marche sur Windows, Mac et Linux.
      - Utilisable en petite résolution : On a encore du travail, mais on veut améliorer l'interface pour être utilisable en petite résolution car il nous arrive d'utiliser teamviewer, sur des postes où les résolutions sont très petites (1024x720 voir 800x600)
      - On a aussi créé un code assez simple pour faciliter les éventuelles contributions

      Le fait d'avoir C++ complexifie un peu le développement, mais je pense qu'il était intéressant de pouvoir proposer cet outil.

  • # Petite suggestion

    Posté par  . Évalué à 3.

    Slt,
    Sur la partie "Structure" à gauche dans l'appli là ou se trouve la liste des tables, il serait pas mal d'afficher en second niveau la liste des schémas et en troisième niveau la liste des tables par schémas.
    J'utilise PostgreSQL et la base avec laquelle je travail actuellement contient 15 schémas avec pas mal de tables dans chaque.

    • [^] # Re: Petite suggestion

      Posté par  . Évalué à 2.

      Globalement petit outil très sympa, j'avais cherché des trucs du genre il n'y a pas longtemps et je m'étais arrêté sur DB Browser.
      Je me permet de rajouter mes petites suggestions aussi :
      - un bouton "ouvrir", c'est bête mais ça rend service…
      - les couleurs alternées dans les vues en table de Qt, et aussi ne pas masquer les bordures, ça évite de tuer les yeux quand on a une blinde de données !
      - le fichier de config directement dans le home ? vraiment ?

  • # En gros c'est comme DB Browser for SQlite

    Posté par  . Évalué à 0.

    C'est la même chose ? sauf que cela fonctionne pour d'autres base de données si j'ai bien compris.

    • [^] # Re: En gros c'est comme DB Browser for SQlite

      Posté par  . Évalué à 3.

      DBeaver fonctionne avec une myriade de drivers de BDD differentes !
      Même des NoSQL.

      Je pense que ce projet est plutôt une alternative rapide et réactive. Car DBeaver laisse parfois à désirer niveau perf, en effet…

  • # nostalgie... ou pas

    Posté par  . Évalué à 5.

    Quand j'étais jeune, j'utilisais SquirrelSQL, en Java+JDBC.
    Je constate qu'il évolue encore.
    Il y avait plein de plugins en particulier un qui permettait de reconstruire le MPD.
    Maintenant, quand je dois toucher du SQL, c'est plus avec SQLite et donc DB Browser for SQLite ou la CLI.

    Merci pour le partage.

  • # Logiciel qui trouve sa place comme client graphique léger pour MySQL

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    J'ai testé l'outil en même temps que Crowl, du coup le résultat de mes tests est un peu plus long qu'un simple commentaire… et mêlé à un feedback concernant Crowl. Au final j'ai rédigé ça sous la forme d'un journal qui relate mes manipulations Crowl & OpenDBViewer.

  • # installation impossible sur buster

    Posté par  (Mastodon) . Évalué à 1.

    Salut,

    Impossible de tester cet outil dans une buster, une erreur de dépendance:

    https://github.com/Jet1oeil/opendbviewer/issues/30

    Sinon, ça a l'air sympa…

    Merci !

  • # Paquet manquant, sous Ubuntu

    Posté par  . Évalué à 3.

    La ligne de commande pour installer les paquets nécessaires devrait aussi proposer cmake, sinon la compilation ne peut pas se faire.

  • # Perso sous Windows j'utilile HeidiSQL

    Posté par  . Évalué à 3.

    Et si j'avais à l'utiliser sous Linux, ce serait avec Wine tellement l'ergonomie est sympa.

    Effectivement, HeidiSQL ne supporte pas SQLite, et donc je suis sur DBBrowser.

    Si le logiciel est de qualité et pas trop lourd, c'est vraiment bon.

    Allez je file tester ça ! Merci !

  • # Problème avec Postgres sur Windows

    Posté par  (site web personnel) . Évalué à 1.

    Impossible de se connecter sur une base Postgres sous Windows, dans la console il dit qu'il ne trouve pas le driver PSQL. Problème d'empaquetage ? windeployqt est bien pratique :)

  • # excellent

    Posté par  . Évalué à 1.

    Merci pour la découverte de cet outil, et aux autres commentateurs qui m'ont fait découvrir d'autres produits que HeidiSQL dans Wine…

    Connaissez-vous un outil equivalent (explorateur de DB MySQL ou SQLite) purement en ligne de commande ? Un genre de OpenDBViewer mais en ncurses ?

    • [^] # Henplus, en ligne de commande

      Posté par  . Évalué à 0. Dernière modification le 15 septembre 2018 à 10:05.

      Je connais Henplus qui n'est pas à proprement parler un explorateur de DB. C'est un client SQL générique en ligne de commande qui supporte n'importe quelle BDD pour laquelle il existe un pilote JDBC (oui Henplus est écrit en Java, mais ça marche bien quand même).

      En plus des fonctionnalités classiques il propose Tree View of connected tables qui pourrait t'intéresser.

      Si ce n'est pas suffisant, il te permet aussi d'implémenter tes propres plugins à condition d'aimer coder en Java.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.