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

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

Инструкция сборки

  1. Первым делом нужно установить MSYS2.

    MSYS2 — это набор инструментов и библиотек, предоставляющий вам простую в использовании среду для создания, установки и запуска собственного программного обеспечения Windows.

    В конце установки оставьте галочку RunMSYS2Now.

    После установки в меню пуск у вас должна появиться новая папка (показано на рисунке ниже). В дальнейшем понадобиться только MSYS2 для выполнения задач установки и обновления, и MSYS2 MINGW64 для сборки программного обеспечения.

  1. Если галочка 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 . Когда происходит сборка, папки, содержащие пробелы в названии, вызывают ошибки. Также вам придётся менять настройки файла, о чём будет написано ниже.

  2. Откройте MSYS2 MINGW64. Дальше все команды выполняются в этом терминале. Клонируйте репозиторий pgModeler:

    git clone https://github.com/pgmodeler/pgmodeler.git

    cd pgmodeler

  3. Выберете ветку pgmodeler:

    git checkout [main | develop]

    На сайте pgModeler указано, что pgModeler имеет две основные ветки разработки: main и development . Но на самом деле этих веток может быть больше.

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

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

    Здесь можно увидеть, что является main и develop
    Здесь можно увидеть, что является main и develop
  4. Скачанный репозиторий находится в папке 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
    ...
    }

  5. Теперь можно приступить к сборке. $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.

  6. Далее нужно выполнить следующие команды:

    cd $INSTALLATION_ROOT

    windeployqt-qt6 pgmodeler.exe gui.dll

  7. Теперь нужно скопировать файлы из 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

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

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

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

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

Комментарии (2)


  1. Sleuthhound
    09.12.2023 09:07

    А он же опенсорс или инсталятор под винду за деньги предлагают?


    1. aleksandy
      09.12.2023 09:07

      Насколько я помню, они опенсорсные, но сборки не делают. Кому надо пусть сам собирается. Все инсталляторы - за денюшку.

      Угу

      We also provide pre-compiled binary packages at a really fair price in order to gather financial support for the project.