Skip to content

Instantly share code, notes, and snippets.

@f0t0n
Last active June 16, 2016 18:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save f0t0n/45ff2b0d80bb9ac178145a65bb881d48 to your computer and use it in GitHub Desktop.
Save f0t0n/45ff2b0d80bb9ac178145a65bb881d48 to your computer and use it in GitHub Desktop.
Как я собрался генерировать ERD

#Как я собирался генерировать ERD

pgmodeler

В общем, решил я сгенерировать ERD существующей PostgreSQL базы данных. Добрые люди из украинского Python комьюнити порекомендовали pgmodeler. Посмотрел скриншоты на сайте - понравилось. Решил по-быстрому его собрать и опробовать. Когда собирал, понял, что заметка с пошаговой инструкцией может оказаться полезной. Посему излагаю.

git clone git@github.com: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 <raphael@pgmodeler.com.br>

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 <raphael@pgmodeler.com.br>

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

Профит.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment