Сборка pgModeler в Windows 10 без знания Qt

Мне нравится использовать визуальные инструменты для проектирования баз данных, так как ты видишь в удобном формате всю картину того, что ты спроектировал. Помимо pgModeler, есть такие программы как erwin и Visual Paradigm, которые прилично стоят. При этом страница erwin заблокирована в России (на момент написания статьи). Поэтому если вы используете PostgreSQL, смело можно выбрать pgModeler.

Теперь перейдём к главному вопросу:»‎Как собрать pgModeler, если о Qt вы услышали первый раз, а о существовании C++, знаете только то, что он существует?»‎

Если галочка 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

Важно! Строки команд вышенамеренно дублируются, и их необходимо выполнить, если вы запускаете 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 . Но на самом деле этих веток может быть больше.

В основной ветке можно найти функции, считающиеся стабильными. Ветка разработки для альфа- и бета-версий, предназначена для размещения и тестирования исправлений и новых нестабильных функций.

Подробнее какая ветка является основной, а какая для разработки указано на сайте (смотреть пример ниже).

Здесь можно увидеть, что является main и develop

Здесь можно увидеть, что является main и develop

Скачанный репозиторий находится в папке 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. Список необходимых файлов на момент написания статьи:

Файлы можно скопировать вручную или выполнить команду через терминал.

Зайдите в папку, которую вы указывали при сборки, и дважды щелкните приложение pgmodeler.exe. Если вылезает ошибка, что не хватает файла с разрешением .dll, вернитесь к пункту 8.

pgModeler собран, можно ещё сделать ярлык на файл pgmodeler.exe и закинуть его на рабочий стол. Теперь наслаждайтесь проектированием базы данных!

P.S. Если вам нравится pgModeler, вы можете финансово поддержать этот проект на официальном сайте, если у вас есть такая возможность.

© Habrahabr.ru