#Как я собирался генерировать ERD
В общем, решил я сгенерировать ERD существующей PostgreSQL базы данных.
Добрые люди из украинского Python комьюнити порекомендовали pgmodeler
. Посмотрел скриншоты на сайте - понравилось.
Решил по-быстрому его собрать и опробовать. Когда собирал, понял, что заметка с пошаговой инструкцией может оказаться полезной.
Посему излагаю.
- Взял исходники
pgmodeler
на GitHub (https://github.com/pgmodeler/pgmodeler):
git clone [email protected]:pgmodeler/pgmodeler.git \
&& cd pgmodeler \
&& git checkout v0.8.2
- Запустил скрипт
linuxdeploy.sh
, он ругнулся, что у меня в Fedora 23 установлен QT 4.8.7, а нужен QT >= 5.0.0. - Пошел на http://www.qt.io/download-open-source/#section-2, скачал offline installer "Qt 5.7.0 for Linux 64-bit (715 MB)".
- Запустил установщик, который спрашивал пароль суперпользователя, а после зависал.
- В первом же поисковом запросе нашел решение - поменять пользователя на
root
и зайти в/
перед установкой. Помогло. - Попробовал запустить скрипт
linuxdeploy.sh
еще раз. Тот снова ругнулся на версию Qt Framework. - Поменял в
linuxdeploy.sh
значение переменнойFALLBACK_QT_ROOT
на/opt/Qt5.7.0/5.7/gcc_64
. - Попробовал запустить - опять ругается. Нашел еще одну переменную:
QT_IFW_ROOT=/opt/qt-ifw-1.5.0
. - Пошел устанавливать Qt Installer Framework.
cd /opt \
&& git clone http://code.qt.io/cgit/installer-framework/installer-framework.git ./qt-ifw-2.0.3 \
&& cd ./qt-ifw-2.0.3 \
&& git checkout 2.0.3
- Не стал заморачиваться с симлинками:
/opt/Qt5.7.0/5.7/gcc_64/bin/qmake && make
- Поменял в
linuxdeploy.sh
значение переменнойQT_IFW_ROOT
на/opt/qt-ifw-2.3.0
- Запускаю
linuxdeploy.sh
:clang++: Command not found
sudo dnf install clang
установил мнеclang
,clang-libs
,llvm
.- Запустил
linuxdeploy.sh
еще раз:
pgModeler Linux deployment script
PostgreSQL Database Modeler Project - pgmodeler.com.br
Copyright 2006-2016 Raphael A. Silva <[email protected]>
Deploying version: 0.8.2
Cleaning previous compilation...
Running qmake...
Compiling code...
Ноут начал обжигать ноги. Супер - сборка идёт! Ушел курить.
- Покурив, обнаружил, что не удалось скопировать Qt плагины:
Installing dependencies...
Copying Qt core libraries...
Copying Qt plugins...
** Plugins copy failed!
- Заглянул в лог
linuxdeploy.log
:
cp: cannot stat ‘/opt/Qt5.7.0/5.7/gcc_64/plugins/imageformats/libqmng.so’: No such file or directory
- Не знаю, почему его там не оказалось.
locate libqmng.so
usr/lib64/qt4/plugins/imageformats/libqmng.so
sudo ln -s /opt/Qt5.7.0/5.7/gcc_64/plugins/imageformats/libqmng.so /usr/lib64/qt4/plugins/imageformats/libqmng.so
Авось совместима...
- Запустил
linuxdeploy.sh
снова.
pgModeler Linux deployment script
PostgreSQL Database Modeler Project - pgmodeler.com.br
Copyright 2006-2016 Raphael A. Silva <[email protected]>
Deploying version: 0.8.2
Cleaning previous compilation...
Running qmake...
Compiling code...
Ногам снова горячо. Курить!
- Покурил.
Installing dependencies...
Copying Qt core libraries...
Copying Qt plugins...
Copying scripts...
Generating tarball...
File created: dist/pgmodeler-0.8.2-linux64.tar.gz
pgModeler successfully deployed!
sudo cp -R pgmodeler /opt/
sudo ln -s /opt/pgmodeler/build/opt/pgmodeler/start-pgmodeler.sh /usr/bin/pgmodeler
Профит.