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