Articles - Logiciel & scripts

pgModeler

  |   6450  |  Poster commentaire  |  Logiciel & scripts
Voici un super logiciel pour faire des bases de données en Postgres (le SGBDR SQL libre et gratuit le plus puissant à ce jour).



Ici pas d'UML ou de méthode Merise. Je trouve que c'est un bon compromis entre d'une part le phpPgAdmin (phpMyAdmin pour Postgres) tant adoré des newbies et d'autre part les Rational Rose et consorts adulés par les adeptes de la branlette intellectuelle, c'est à dire les UMLeurs. Vous savez les UMLeurs qui ne jurent que par des schémas en tout genre pour que ça fasse joli et que ça passe mieux en PowerPoint. Après ça, on a plus le temps d'optimiser les requêtes et on oublie de créer des index et des séquences dans sa base de données là où il en faudrait. :@

Si vous utilisez encore phpMyAdmin pour gérer vos bases de données MySQL, il serait temps pour vous d'utiliser MySQL Workbench, HeidiSQL ou encore DBeaver. Bon, c'est sûr que chez un hébergeur web (à distance) la chose n'est pas facile, puisque MySQL est configuré pour que seules les connexions locales (de localhost) soient acceptées pour des raisons de sécurité. Mais sur un serveur local, quel pied ce logiciel !

En BTS, je préférais la méthode Merise (plutôt qu'UML) mais hélas aucun logiciel de modélisation n'arrive à la hauteur de Win'Design de CECIMA qui est payant, hors de portée pour un particulier. Évidemment pgModeler n'est interfaçable qu'avec des bases PostgreSQL.

Téléchargement et installation



pgModeler est utilisable sur Windows, Linux et Mac OS car il utilise la librairie Qt (qui est multiplateforme). Pour Windows, vous avez deux manières d'obtenir pgModeler :

  • gratuit : il vous faudra :

    • télécharger les sources de pgModeler (ou récupérer le dépôt dur GitHub)
    • les dézipper dans un dossier
    • installer le SGBDR Postgres sur votre poste (10 de préférence)
    • installer Qt5.9 (via Qt Universal Installer)
    • modifier votre variable PATH
    • modifier des chemins dans pgmodeler.pri
    • et enfin compiler sur votre ordinateur via qmake pgmodeler.pro et mingw32-make.


    Vous devrez tout faire à la main, la méthode est décrite sur cette page. Depuis l'écriture de cet article, cette page la documentation officielle s'est bonifiée. C'est moins compliqué qu'en 2014-2016 et mieux rédigé pour le quidam. Il faudra juste maitriser l'édition de fichiers textes et la ligne de commande.

  • payant : sur le site officiel vous avez différentes formules payantes pour télécharger le logiciel et dans ce cas vous aurez droit à un installateur Windows nickel, facile à utiliser.


Téléchargements



Rappel : Il n'y a donc volontairement pas d'installeur en bonne et due forme. Raphael compte la dessus financièrement pour son projet. Dézipper dans un répertoire puis lancer simplement pgmodeler.exe.

Citation:
pgModeler is an open source software and you can get its source code anytime if you want to compile it for yourself. As a facility, we provide compiled binary packages at a really small price. Also, if you're interested in evaluate a binary package, you can get a demo copy before proceed with the purchasing. Since this is an independent project by ordering any binary package you'll help to keep its development alive and at full speed!


  • MAJ 2018 : Version complète avec dépendances QT 5.9.6 et Postgres 10.4 fournies.


pgModeler compilé pour Windows
Version Date Taille Lien
0.9.1 31/07/2018 16.6 Mo pgmodeler_win32_v0.9.1.zip


Direct HTTP : fichiers pgModeler



Versions compilées obsolètes (2016 et antérieur)



pgModeler pour Windows
Version Date Taille Lien
0.8.2-beta1 14/04/2016 29 Mo 0.8.2-beta1_win32.zip (22Mo) + qt4pg_win32.zip (7Mo)
0.8.1-alpha1 23/04/2015 18 Mo 0.8.1-alpha1_win32.7z
0.8.1-alpha 04/04/2015 18 Mo 0.8.1-alpha_win32.7z
0.8.0-beta 13/12/2014 18 Mo 0.8.0-beta_win32.7z
0.8.0-alpha2 01/10/2014 18 Mo 0.8.0-alpha2_win32.7z
0.7.2 22/09/2014 18 Mo 0.7.2_win32.7z



Automatisation



Évidemment je ne me retape pas à la main toutes les commandes à chaque fois, j'ai 3 scripts qui m'assurent la compilation, la copie des fichiers et fait tout le packaging à chaque fois.



Compiler soi-même sous Windows



Cette partie est partiellement obsolète. Les versions ne correspondent plus. Se fier à la documentation officielle.

Je n'utilise pas le windeploy.sh, je compile sous Windows mais à la main avec mes propres scripts qui appellent les commandes qmake / mingw32-make (fournies avec Qt).

Étape 1 - Installez PostgreSQL 10 (version x86)



Même sur un Windows 64 bits installez la version 32 bits de PostgreSQL. Installez-le via l'assistant installeur d'EntrepriseDB. Durant l'installation choisissez de préférence de le mettre dans C:\PostgreSQL. Afin d'obtenir C:\PostgreSQL\10\ comme dossier du cluster.

Étape 2 - Installez Qt



Jusqu'à présent je compilais avec Qt en version 5.2.1 sans erreur. Chiche que le développeur fait maintenant appel à des classes inexistantes dans cette version. Il a dû passer à la 5.4 pour avoir accès à des nouveaux composants/widgets graphiques. Du coup il faut que j'installe une nouvelle version de Qt. Sous Windows, c'est super pratique car l'installateur vous propose de sélectionner ce que vous voulez installer via des cases à cocher. Si vous débutez une installation fraîche lancez le setup "qt-opensource-windows-x86-1.6.0-3-online.exe" (il peut avoir changé de nom depuis la rédaction de cet article) et laissez-vous guider. Il se peut que les captures d'écran ne soient pas les mêmes que chez vous car sur mon PC Qt est déjà installé, donc je vais passer par le gestionnaire des programmes pour modifier les paquets :





Je lance la sélection de paquets à installer/désinstaller :



On peut voir ici que je possède déjà la 5.2.1 :



Décochons la 5.2 et cochons la 5.4 :



Work in progress and finish :




It's OK :



Étape 3 - Modifiez la variable PATH (coté utilisateur)



Cette technique je l'ai abandonnée, mais je là laisse pour information. Maintenant ces variables d'environnement sont modifiées automatiquement de manière ponctuelle par les 4 scripts d'automatisation que j'ai fait. Comme il fallait souvent modifier les chemins des répertoires car ils incluent des numéros de version et tout, ça devenait gonflant, stop au clicodrome. Maintenant j'ai juste un fichier texte à éditer et voilà.





Ma variable PATH est déjà en partie renseignée :



Comme le donne la commande echo (ouvrir une invite de commande cmd) :




Normalement, vous, vous devez juste la compléter, moi je vais devoir la modifier (pour prendre en compte les nouvelles versions) :

Il faut y placer deux chemins (séparés par un point-virgule). Ce qui donne chez moi :

C:\Qt\5.9.6\mingw53_32\bin;C:\Qt\Tools\mingw530_32\bin



Validez les changements par les boutons OK sur les boites de dialogue ouvertes. Si vous aviez ouvert des invites de commande à ce stade, la variable PATH ne sera pas mise à jour dans les invites déjà ouvertes. Fermez-les et ouvrez-en des nouvelles pour que le contenu de la variable PATH soit rafraichi. Sinon faites à la main à l'ancienne : set PATH=%PATH%;Chemin1;Chemin2

A noter que la variable PATH finale est en fait la concaténation de cette même variable au niveau système suffixée par la partie personnalisée par l'utilisateur.

Bref, voici ma variable PATH mise à jour :



Étape 6 - Modifiez le fichier pgmodeler.pri



Faites pointer vers les bons chemins :



Étape 7 - Lancez la compilation



Ouvrez une invite et vérifiez votre PATH puis faites "qmake pgmodeler.pro" :



Dans le cas où tout va bien, vous n'aurez rien sur la sortie en console. Si vous avez une erreur, et bien il va falloir investiguer.

Enchaînez avec un "mingw32-make" et attendez quelques minutes :





Contrôlez si les .dll et le .exe sont bien produits :



Étape 8 - Le rassemblement



Maintenant il faut rassembler les fichiers dll/exe compilés dans les différents sous-dossiers et tout le tralala pour en faire un tout cohérent et autonome (standalone). Pour cela je créé un dossier "bin2pack".

Ce qui donne ça :



Tout est OK :



A ce stade notre dossier pèse :



Ensuite ça marche sur votre poste car les librairies de Qt5 sont dans votre PATH. Pour faire un pack autonome utilisable sur n'importe quel Windows sans installer Qt5, il faut joindre toutes les DLL de Qt5 nécessaires aux .exe et les mettre à coté des autres dans le dossier...



Retirez les chemins vers Qt de votre variable PATH et voila :



Vous les trouverez dans les dossiers habituels : C:\PostgreSQL\9.4\bin;D:\Qt\5.4\mingw491_32\bin;D:\Qt\Tools\mingw491_32\bin (Pour moi)

Maintenant notre dossier pèse :



Reste ensuite à zipper le dossier avec 7zip...



Les pièges



  • Déjà il faut bien vérifier que les chemins soient corrects dans la variable principale PATH.
  • Attention aux chemins/répertoires avec des espaces. Si vous avez installé Postgres dans son répertoire par défaut (C:\Program Files (x86)\Postgres\....) il vous faudra protéger la chaîne de caractères dans pgmodeler.pro avec des guillemets.


Citation:
windows {
!defined(PGSQL_LIB, var): PGSQL_LIB = "C:/Program Files (x86)/PostgreSQL/10/lib/libpq.dll"
!defined(PGSQL_INC, var): PGSQL_INC = "C:/Program Files (x86)/PostgreSQL/10/include"
!defined(XML_INC, var): XML_INC = "C:/Program Files (x86)/PostgreSQL/10/include"
!defined(XML_LIB, var): XML_LIB = "C:/Program Files (x86)/PostgreSQL/10/bin/libxml2.dll"
}