Мне нравится использовать визуальные инструменты для проектирования баз данных, так как ты видишь в удобном формате всю картину того, что ты спроектировал. Помимо pgModeler, есть такие программы как erwin и Visual Paradigm, которые прилично стоят. При этом страница erwin заблокирована в России (на момент написания статьи). Поэтому если вы используете PostgreSQL, смело можно выбрать pgModeler.
Теперь перейдём к главному вопросу: «Как собрать pgModeler, если о Qt вы услышали первый раз, а о существовании C++, знаете только то, что он существует?»
Инструкция сборки
Первым делом нужно установить MSYS2.
MSYS2 — это набор инструментов и библиотек, предоставляющий вам простую в использовании среду для создания, установки и запуска собственного программного обеспечения Windows.
В конце установки оставьте галочку RunMSYS2Now.
После установки в меню пуск у вас должна появиться новая папка (показано на рисунке ниже). В дальнейшем понадобиться только MSYS2 для выполнения задач установки и обновления, и MSYS2 MINGW64 для сборки программного обеспечения.
Если галочка RunMSYS2Now была установлена, то у вас уже открыт терминал MSYS2. В нём нужно выполнить следующие команды, соглашаясь на все вопросы:
pacman -Suy
pacman -Suy
pacman -S base-devel mingw-w64-x86_64-make mingw-w64-x86_64-gcc mingw-w64-x86_64-postgresql mingw-w64-x86_64-qt6 git
Важно! Строки команд выше намеренно дублируются, и их необходимо выполнить, если вы запускаете MSYS2 впервые. Если у вас уже установлена PostgreSQL, вы можете не выполнять
mingw-w64-x86_64-postgresql
. Но убедитесь, что PostgreSQL не установлен по этому путиC:\Program Files\PostgreSQL
. Когда происходит сборка, папки, содержащие пробелы в названии, вызывают ошибки. Также вам придётся менять настройки файла, о чём будет написано ниже.Откройте MSYS2 MINGW64. Дальше все команды выполняются в этом терминале. Клонируйте репозиторий pgModeler:
git clone https://github.com/pgmodeler/pgmodeler.git
cd pgmodeler
Выберете ветку pgmodeler:
git checkout [main | develop]
На сайте pgModeler указано, что pgModeler имеет две основные ветки разработки: main и development . Но на самом деле этих веток может быть больше.
В основной ветке можно найти функции, считающиеся стабильными. Ветка разработки для альфа- и бета-версий, предназначена для размещения и тестирования исправлений и новых нестабильных функций.
Подробнее какая ветка является основной, а какая для разработки указано на сайте (смотреть пример ниже).
Скачанный репозиторий находится в папке
C:\msys64\home\User\pgmodeler
. В этой папке нужно найти файлpgmodeler.pri
. Его можно открыть с помощью блокнота. Если была выполнена командаmingw-w64-x86_64-postgresql
, то необходимые строки будут выглядеть примерно так, проверьте правильно ли указан путь к файлам:windows {
!defined(PGSQL_LIB, var): PGSQL_LIB = C:/msys64/mingw64/bin/libpq.dll
!defined(PGSQL_INC, var): PGSQL_INC = C:/msys64/mingw64/include
!defined(XML_INC, var): XML_INC = C:/msys64/mingw64/include/libxml2
!defined(XML_LIB, var): XML_LIB = C:/msys64/mingw64/bin/libxml2-2.dll
...
}Если вы используете установленную PostgreSQL, то строки будет выглядеть, как указано ниже, также не забудьте проверить путь к файлам:
windows {
!defined(PGSQL_LIB, var): PGSQL_LIB = C:/PostgreSQL/15/lib/libpq.dll
!defined(PGSQL_INC, var): PGSQL_INC = C:/PostgreSQL/15/include
!defined(XML_INC, var): XML_INC = C:/PostgreSQL/15/include
!defined(XML_LIB, var): XML_LIB = C:/PostgreSQL/15/bin/libxml2.dll
...
}Теперь можно приступить к сборке.
$INSTALLATION_ROOT
это путь к папке, где у вас будет храниться собранный pgModeler, не обязательно, чтобы этот путь находился в папке и подпапках путиC:\msys64\
. Также не стоит забывать, что путь в терминале пишется через обратный слеш:C:/build
.Нужно выполнить следующие команды в MSYS2 MINGW64:
qmake-qt6 -r CONFIG+=release PREFIX=$INSTALLATION_ROOT pgmodeler.pro
make
make install
Сборка занимает достаточно много времени, минут 30 точно. Поэтому если в терминале вы видите что-то похожее:
То это говорит об ошибках в коде на C++. Для полного успокоения вы можете открыть папку в своём редакторе кода и через поиск найти нужный код, чтобы убедиться, что это точно C++.
Чтобы решить данную проблему, нужно сменить ветку или тег на ветке в git. Для того, чтобы узнать какая ветка точно без ошибок, следует перейти по ссылке. Скорее всего кто-то уже рассказал об ошибке сборки, и ему ответили какую ветку стоит выбрать. На этой же странице можно рассказать о всех проблемах, с которыми вы столкнулись во время использования pgModeler. Проверьте есть ли какие-нибудь файлы в папке, которую вы указали в переменной
$INSTALLATION_ROOT
. Удалите всё, что там есть. После смены ветки, возвращайтесь к пункту 5.Далее нужно выполнить следующие команды:
cd $INSTALLATION_ROOT
windeployqt-qt6 pgmodeler.exe gui.dll
Теперь нужно скопировать файлы из
C:\msys64\mingw64\bin
в папку$INSTALLATION_ROOT
. Список необходимых файлов на момент написания статьи:libb2-1.dll
libbrotlicommon.dll
libbrotlidec.dll
libbz2-1.dll
libcrypto-3-x64.dll
libdouble-conversion .dll
libfreetype-6.dll
libgcc_s_seh-1.dll
libglib-2.0-0.dll
libgraphite2.dll
libharfbuzz-0.dll
libiconv-2.dll
libicudt74.dll
libicuin74.dll
libicuuc74.dll
libintl-8.dll
liblzma-5.dll
libmd4c.dll
libpcre-1.dll
libpcre2-16-0.dll
libpcre2-8-0.dll
libpng16-16.dll
libpq.dll
libssl-3-x64.dll
libstdc++-6.dll
libwinpthread-1.dll
libxml2-2.dll
libzstd.dll
zlib1.dll
Файлы можно скопировать вручную или выполнить команду через терминал.
Зайдите в папку, которую вы указывали при сборки, и дважды щелкните приложение
pgmodeler.exe
. Если вылезает ошибка, что не хватает файла с разрешением .dll, вернитесь к пункту 8.
pgModeler собран, можно ещё сделать ярлык на файл pgmodeler.exe
и закинуть его на рабочий стол. Теперь наслаждайтесь проектированием базы данных!
P.S. Если вам нравится pgModeler, вы можете финансово поддержать этот проект на официальном сайте, если у вас есть такая возможность.