Скачать pgmodeler для windows 64 bit

pgModeler is an open source software and you can get its source code anytime if you want to compile it by yourself. As a convenience, we provide compiled binary packages at a really fair price. Also if you're interested in evaluating a binary package you can get a demo copy before proceeding with the purchase. Since this is an independent project by ordering any binary package you'll help to keep its development alive and at full speed!

pgModeler is open-source software, and you can get its source code anytime if you want to compile it by yourself. We also provide pre-compiled binary packages at a really fair price in order to gather financial support for the project. Since this is an independent project with no sponsorship, buying any binary package will help to keep the development activities at full speed, bringing lots of news periodically, as always!

  • Stable: 1.0.0

  • February 01, 2023

    Changes since: v0.9.4

    Attention: pgModeler 0.9.x settings are not compatible with pgModeler 1.0.0. This way, at the first start of the newer version, some settings will be automatically migrated if the tool detects the configuration files related to 0.9.4 or below in the system!

    The journey was really long, full of challenges that almost made me give up everything, but with the support from lots of people around the world, here we’re, launching the long-awaited stable version of pgModeler 1.0.0! Since the early days of this project, seventeen years ago, I was anxious about this moment. This tool is the result of a dream of creating something really useful for the open-source community that I admire so much. I can’t express in words how proud and joyful I’m about my hard work and the thousands of people that helped me so far. Thank you wholeheartedly to each one that reserved a bit of their time to make a contribution to this project. Your inestimable help was extremely important to keep this project alive and I hope to keep receiving all support needed to take pgModeler to levels even higher in the future!

    In resume, the development of pgModeler 1.0.0 took exactly, 398 days and 649 commits producing a total of 435 changes between new features, bug fixes, and improvements. In the UI, some parts were redesigned, new icons were created, and the long-requested dark theme support was added. In the code generation, the PostgreSQL 9.x support was dropped while PostgreSQL 15 was added. Also, the codebase was fully ported to Qt 6 and now pgModeler can take advantage of all improvements introduced by the framework. There were, of course, a bunch of bug fixes in practicaly all parts of the tool but the majority was applied to the reverse engineering and diff processes. Below, are some key changes that is worth to detail:

    **UI improvements:** this was the main goal for pgModeler 1.0, and now it brings a responsive UI, which means, that it will adapt the widget sizes and icons according to the screen’s resolution. Also, we now have support for color themes which can be toggled on-the-fly in the appearance settings. Still in the responsiveness subject and using the Qt 6 improved high DPI screens support, pgModeler allows the use of custom UI scale factors that adjust the entire user-interface rendering depending on the screen that the tool is running.

    **New CSV parser:** the CSV parsing routine was rewritten based on RFC 4180 which describes the CSV file in detail. That makes CSV files loading in pgModeler a little bit faster as well as more reliable since it’s now capable of parsing files generated by third-party software more easily, improving the interoperability between the tools, and, consequently, the users’ productivity.

    **Improved design:** in the design view, the magnifier tool received a dedicated action in the top actions bar which can be triggered with F9 when the zoom factor is less than 100%. The magnifier tool has been improved too and now allows better object interaction. Unlike previous versions, this tool now lets the user interact with multiple objects which helps to handle large models where the visualization is impaired and the magnifier tool comes as a good way to handle objects.

    Another important enhancement in the design is that the columns/constraints propagation mechanism was completely rewritten which resulted in a noticeable performance gain and now solves an old problem of objects created by identifier relationships not being added or even disappearing in certain circumstances.

    The model printing operation was also improved in such a way that is now possible to print models with a scale factor, this way, it’s possible to print an entire model on a single page, something that was not possible previously.

    **Miscellaneous changes:** the data dictionary now displays information related to indexes, triggers, and sequences used in the tables, making the generated file much more complete from the documental point of view.

    Another improvement was the ability to generate split SQL code in the command line interface which allows generating the objects’ SQL in separate files. Furthermore, it is now possible to add to the generated SQL files the code of objects that are dependencies or children of the original object.

    **New plug-in development interface:** the pgModeler’s plug-in interface was completely redesigned being now more organized allowing developers to create custom features more easily without necessarily changing the core code. As a proof of concept for the new plug-in interface, three new plug-ins were developed and they expand the overall productivity and reliability of the tool. They are exclusive features for the paid version of the tool and come as a reward for the recognition given by financial supporters all these years. Of course, plug-ins for the open-source version of the tool will be developed in the near future. For now, these are the available plug-ins:

    * **Quick object edit plug-in:** this plug-in allows one to search for the desired object and start editing it in the related dialog. This is a well-known feature on many IDEs and now arrives in pgModeler to improve the user experience. The quick edit can be triggered using Ctrl+1 on the design view.

    * **Split database model file plug-in:** this plug-in introduces a new file format to store database models called split database model (.sdbm). It was designed to improve the version control of model files by saving the XML code of the objects in individual files. This way, it is easier to track the changes made in each database object when the model is handled by different people in a team. In future improvements for this plug-in, a git integration will be added so the user doesn’t need to use external tools to commit changes in the model.

    * **SSH tunnel plug-in:** this plug-in brings to pgModeler another long-requested feature, the SSH tunnel. This feature allows one to connect to a database server by encrypting the data transferred between the client and server using the OpenSSH application without the need to expose the PostgreSQL server to the internet or even use an SSL certificate. It is sufficient to have the ability to log in via SSH in the database server to use the tunnel.

    Finally, for more details about all changes in the release, please, read the CHANGELOG.md file. For less technical details of the new features in pgModeler 1.0.0, please, visit our [blog](https://pgmodeler.io/blog).

    v1.0.0

    Changes since: v0.9.4

    Attention: pgModeler 0.9.x settings are not compatible with pgModeler 1.0.0. This way, at the first start of the newer version, some settings will be automatically migrated if the tool detects the configuration files related to 0.9.4 or below in the system!

    The journey was really long, full of challenges that almost made me give up everything, but with the support from lots of people around the world, here we’re, launching the long-awaited stable version of pgModeler 1.0.0! Since the early days of this project, seventeen years ago, I was anxious about this moment. This tool is the result of a dream of creating something really useful for the open-source community that I admire so much. I can’t express in words how proud and joyful I’m about my hard work and the thousands of people that helped me so far. Thank you wholeheartedly to each one that reserved a bit of their time to make a contribution to this project. Your inestimable help was extremely important to keep this project alive and I hope to keep receiving all support needed to take pgModeler to levels even higher in the future!

    In resume, the development of pgModeler 1.0.0 took exactly, 398 days and 649 commits producing a total of 435 changes between new features, bug fixes, and improvements. In the UI, some parts were redesigned, new icons were created, and the long-requested dark theme support was added. In the code generation, the PostgreSQL 9.x support was dropped while PostgreSQL 15 was added. Also, the codebase was fully ported to Qt 6 and now pgModeler can take advantage of all improvements introduced by the framework. There were, of course, a bunch of bug fixes in practicaly all parts of the tool but the majority was applied to the reverse engineering and diff processes. Below, are some key changes that is worth to detail:

    UI improvements: this was the main goal for pgModeler 1.0, and now it brings a responsive UI, which means, that it will adapt the widget sizes and icons according to the screen’s resolution. Also, we now have support for color themes which can be toggled on-the-fly in the appearance settings. Still in the responsiveness subject and using the Qt 6 improved high DPI screens support, pgModeler allows the use of custom UI scale factors that adjust the entire user-interface rendering depending on the screen that the tool is running.

    New CSV parser: the CSV parsing routine was rewritten based on RFC 4180 which describes the CSV file in detail. That makes CSV files loading in pgModeler a little bit faster as well as more reliable since it’s now capable of parsing files generated by third-party software more easily, improving the interoperability between the tools, and, consequently, the users’ productivity.

    Improved design: in the design view, the magnifier tool received a dedicated action in the top actions bar which can be triggered with F9 when the zoom factor is less than 100%. The magnifier tool has been improved too and now allows better object interaction. Unlike previous versions, this tool now lets the user interact with multiple objects which helps to handle large models where the visualization is impaired and the magnifier tool comes as a good way to handle objects.

    Another important enhancement in the design is that the columns/constraints propagation mechanism was completely rewritten which resulted in a noticeable performance gain and now solves an old problem of objects created by identifier relationships not being added or even disappearing in certain circumstances.

    The model printing operation was also improved in such a way that is now possible to print models with a scale factor, this way, it’s possible to print an entire model on a single page, something that was not possible previously.

    Miscellaneous changes: the data dictionary now displays information related to indexes, triggers, and sequences used in the tables, making the generated file much more complete from the documental point of view.

    Another improvement was the ability to generate split SQL code in the command line interface which allows generating the objects’ SQL in separate files. Furthermore, it is now possible to add to the generated SQL files the code of objects that are dependencies or children of the original object.

    New plug-in development interface: the pgModeler’s plug-in interface was completely redesigned being now more organized allowing developers to create custom features more easily without necessarily changing the core code. As a proof of concept for the new plug-in interface, three new plug-ins were developed and they expand the overall productivity and reliability of the tool. They are exclusive features for the paid version of the tool and come as a reward for the recognition given by financial supporters all these years. Of course, plug-ins for the open-source version of the tool will be developed in the near future. For now, these are the available plug-ins:

    • Quick object edit plug-in: this plug-in allows one to search for the desired object and start editing it in the related dialog. This is a well-known feature on many IDEs and now arrives in pgModeler to improve the user experience. The quick edit can be triggered using Ctrl+1 on the design view.

    • Split database model file plug-in: this plug-in introduces a new file format to store database models called split database model (.sdbm). It was designed to improve the version control of model files by saving the XML code of the objects in individual files. This way, it is easier to track the changes made in each database object when the model is handled by different people in a team. In future improvements for this plug-in, a git integration will be added so the user doesn’t need to use external tools to commit changes in the model.

    • SSH tunnel plug-in: this plug-in brings to pgModeler another long-requested feature, the SSH tunnel. This feature allows one to connect to a database server by encrypting the data transferred between the client and server using the OpenSSH application without the need to expose the PostgreSQL server to the internet or even use an SSL certificate. It is sufficient to have the ability to log in via SSH in the database server to use the tunnel.

    Finally, for more details about all changes in the release, please, read the CHANGELOG.md file. For less technical details of the new features in pgModeler 1.0.0, please, visit our blog.

    v1.0.0-beta1

    Changes since: v1.0.0-beta

    Attention: pgModeler 0.9.x settings are not compatible with pgModeler 1.0.0-beta1. This way, at the first start of the newer version, some settings will be automatically migrated if the tool detects the configuration files related to 0.9.4 or below in the system!

    Summary: the last step prior to the stable release was done with the launching of pgModeler 1.0.0-beta1 today. This development iteration was mainly focused on code refactoring. Of course, despite the main goal, there were some minor fixes and changes but a substantial set of changes was applied to the core code which will not be perceived in the UI. Anyway, the code is now cleaner in some aspects and easier to maintain.

    An important new improvement that is worth mentioning is that the CSV parsing was rewritten based on RFC 4180 which describes the CSV file in detail. That makes that file type loading in pgModeler a little faster as well as more reliable since it’s now capable of parsing files generated by third-party software easily, improving the interoperability between the softwares, and, consequently, the users’ productivity.

    There was also a redesign in the light theme to make it REALLY light compared to the light theme in the previous alpha and beta releases, so, you’ll not notice a single dark element when using the light theme. Still related to themes, a patch was applied in the loading routine and now pgModeler doesn’t change randomly the theme color while the user previews the selected one in the appearance configuration.

    In the design view, the magnifier tool received a dedicated action in the top actions bar which can be triggered with F9 when the zoom factor is less than 100%. Also, a bug that was causing the resetting of the fade-out state of objects was fixed and now using the object finder widget or undoing/redoing operations will preserve the fade status of the objects.

    There were also some bug fixes in the database import process related to operators and functions having parameters composed of user-defined types arrays.

    Finally, the complete changelog of this version can be found in the file CHANGELOG.md.

    v1.0.0-beta

    Changes since: v1.0.0-alpha1

    Attention: pgModeler 0.9.x settings are not compatible with pgModeler 1.0.0-beta. This way, in the first start of the newer version, some settings will be automatically migrated if the tool detects the configuration files related to 0.9.4 or below in the system!

    Summary: following the path to the stable release, today I present to you pgModeler 1.0.0-beta. The main focus of this release is to remove support for PostgreSQL 9.x which has not been maintained for over a year. By dropping support for an obsolete version of PostgreSQL, we can spend more energy on introducing new functionality that newer versions of the RDBMS bring rather than trying to maintain older versions which creates unnecessary complexity in the pgModeler code. Therefore, if you still need to work with PostgreSQL 9.x, you will need pgModeler 1.0.0-alpha1 or lower.

    This release also brings minor improvements in several parts of the tool. Now, the data dictionary displays information related to indexes, triggers, and sequences used in the tables, making the generated file much more complete from the documental point of view.

    Another improvement was the ability to generate SQL code split in the command line interface which allows generating SQL by objects in separate files. Furthermore, it is now possible to add to the generated SQL files the code of objects that are dependencies or children of the original object.

    In the model design area, the magnifier tool has improved to allow better object interaction. Unlike previous versions, this tool now allows interaction with multiple objects which helps to handle large models where the visualization is impaired and the magnifier tool comes as a good way to handle objects.

    As part of the continuous enhancement in the UI and usability, navigating through form fields using shortcuts and tab keys has been improved to be much more consistent and intuitive compared to previous versions. It’s still not in the best shape but for now, it will help users who prefer the keyboard over the mouse when configuring database objects. This improvement was also applied to almost all other widgets and forms in the tool.

    Finally, as usual, some bugs and crashes were fixed improving the stability of the tool. The following are some changelog entries for that version. For more details, please read the CHANGELOG.md file.

    • [New] Added data dictionary entry for indexes, triggers, and sequences.
    • [New] Columns, indexes, triggers, and constraints now have their own method to generate their data dictionaries.
    • [New] Created the objects.sch to be reused when generating data dictionaries for columns, constraints, indexes, triggers, and sequences.
    • [New] Added split SQL code generation modes to export form.
    • [New] Added the ability to export dependencies or children SQL in split mode at CLI.
    • [New] Added code generation options to DatabaseModel::saveSplitSQLDefinition.
    • [New] Added an info message in the FindReplaceWidget reporting the search status (not found, cycle search, replacements made, etc).
    • [New] Added a text search widget in SourceCodeWidget.
    • [Change] Tab order adjustments in several forms and widget.
    • [Change] pgModeler CLI menu and messages fixed/improved.
    • [Change] Improved the interaction between the magnifier tool and the canvas area. Now the user can select multiple objects, move, and control the zoom with the magnifier tool activated.
    • [Change] Adjusted the size of the magnifier frame according to the primary screen size.
    • [Change] Improved the XMlParser exceptions raised to point the file that generated the error.
    • [Change] Dropped the support for PostgreSQL 9.x.
    • [Change] Connection class now aborts the connection to PostgreSQL 9.x servers.
    • [Change] Changed the shortcut key of the magnifier tool from Ctrl + Alt to F9.
    • [Change] Changed the default size of splash screen on screens with device pixel ratio = 1.
    • [Fix] Fix a crash in macOS when right-clicking a blank portion of the canvas when there are objects selected.
    • [Fix] Fixed a bug in BaseObject::isValidName that was not considered valid a name in the format schema.»object».
    • [Fix] Fixed the diff generation for materialized views.
    • [Fix] Fixed a bug in CLI that was not correctly fixing domains in models created in 0.8.2.
    • [Fix] Minor fix in standalone connection dialog to alert the user about unsaved connection configuration.
    • [Fix] Minor fix in ConnectionsConfigWidget to avoid adding connections with duplicated aliases.

    v1.0.0-alpha1

    Changes since: v1.0.0-alpha

    Attention: pgModeler 0.9.x settings are not compatible with pgModeler 1.0.0-alpha1. This way, in the first start of the newer version, some settings will be automatically migrated if the tool detects the configuration files related to 0.9.4 or below in the system!

    Summary: since the main focus of this release was to improve even more the UI, we had to work on the refactoring of the codebase to use Qt 6 which has lots of enhancements compared to the previous major version. So, after 2 months of work, pgModeler is now completely ported to Qt 6 and thus not compatible with Qt 5 anymore.

    So, attending to some requests, pgModeler received the ability to change the icon sizes to fit different screens in a better way. Still in the responsiveness subject and using the Qt 6 improved high DPI screens support, pgModeler allows the use of custom UI scale factors which adjust the entire user-interface rendering depending on the screen that the tool is running.

    Another enhancement that is worth mentioning here is that the columns/constraints propagation mechanism was completely rewritten which resulted in a noticeable performance gain and now solves an old problem of columns/constraints created by identifier relationships not being added or even disappearing in certain circumstances.

    Finally, as always, there were a lot of other fixes and changes (56 in total) in almost all parts of the tool which improves stability and reliability. For more details about them, please, read the CHANGELOG.md file.

    v1.0.0-alpha

    Changes since: v0.9.4

    Attention: pgModeler 0.9.x settings are not compatible with pgModeler 1.0.0-alpha. This way, in the first start of the newer version, automatic migration of some settings will occur if the tool detects the configuration files related to 0.9.4 or below in the system!

    Summary: after long 4 months of working we finally have the first alpha release of pgModeler 1.0! The main goal of this version was to boot up a series of deep improvements in the UI to add visual comfort while using the software. So that was done, this one brings redesigned UI elements and colors, a completely new icon set, and officially introduces the new project logo.

    As promised, pgModeler 1.0 brings a responsive UI, which means, it will adapt the widget sizes and icons according to the screen’s resolution. Also, we now have the support for color themes which can be toggled on-the-fly in the appearance settings. For now, it’s possible to switch between dark and light themes or, if you prefer, use the system default theme but future updates will allow custom themes.

    Finally, there are a lot of bug fixes and improvements (92 in total) in almost all parts of the tool which improves stability and reliability. For more details about them, please, read the CHANGELOG.md file.

    v0.9.4

    Changes since: v0.9.3

    Attention: the database model file structure has changed since the last stable 0.9.3. Models created in older releases will certainly fail to load due to incompatibilities because some attributes in the XML code don’t exist anymore or have changed during the development of 0.9.4. Before loading your database models in this new release, please, make sure to have a backup of them all and follow the steps presented by the model fix tool to patch the documents’ structure. Not paying attention to this situation may cause irreversible data loss! If the fix procedures aren’t enough to make your database models loadable again, please, ask for help at the official support channels!

    Summary: it was quite a challenge to develop version 0.9.4 during the year 2021 but we finally made it, the last pgModeler of the series 0.9.x is ready! This one has a vast set of improvements over 0.9.3, being 51 new features, 104 enhancements, and 73 bug fixes that will make a big difference in the overall usage of the tool.

    The first improvement in 0.9.4 is the ability to put objects in multiple layers which was not possible in previous versions. The user has now the ability to set up custom colors and labels for each layer enhancing the database model visualization and semantics. Still in the database model design, one can now define a custom color for canvas, grid lines, and page delimiter lines which can help a lot those who aren’t comfortable with the excessive glare produced by the default color schema.

    This release also improves the support for some PostgreSQL objects by bringing the configuration parameters and transform types to functions and procedures, adding the support for PARALLEL attribute on functions, and the support for included columns also known as non-key columns on indexes. It’s worth mentioning that the import and diff processes were also improved to support all the mentioned improvements in those objects. Besides, the diff process is now capable of generating GRANT and REVOKE commands to set up new role memberships.

    The data type configuration widget received a simple improvement which adds a significant reduction in the time spent to configure a data type. Now, the user can just type the name of the desired data type to be used instead of selecting it by using the mouse. After typing the data type name just hit the tab key to jump to the next field and the data type will be automatically configured. Seems a silly fix but it adds speed when you need to repeatedly create columns in a table, for example.

    In the SQL tool, is now possible to drop databases quickly from the databases listing. Previously, there was the need to browse the database first and then drop it. In the database browser widget, the tree items collapse state is saved and restored after any updates requested by the user, improving the overall experience on that module. In data manipulation form, the sorting operation performed when clicking columns was adjusted. Now, the sorting will be triggered by holding the control key and clicking the desired column, and if the user only clicks a column without holding the control key will cause the entire column to be selected in the grid.

    Attending to some requests, pgModeler is now capable of exporting the database model in split SQL files instead of generating a single SQL file representing the entire database. In this export mode, the files are named in such a way to represent the proper order of creation, which means that running the scripts one after another will create the whole database like it was created from a single file.

    Due to the introduction of a new syntax highlighting configuration file (for code snippets configuration), pgModeler will, from now on, create missing configuration files at startup. This will avoid breaking the tool’s execution when it detects the absence of any configuration file. Also, during the copy of these files, pgModeler will enforce the write permission over them to avoid access problems on some systems that store template settings on read-only paths.

    The command-line interface was patched in such a way that now doesn’t crash anymore when performing a diff operation in which a database model is used as input. Another improvement to the CLI is the introduction of the option —force in the mime type handling operation. Also, a patch was made in such a way to avoid the usage of option ‘-platform offscreen’ explicitly when calling the application.

    Finally, there is a bunch of other new features and bug fixes implemented in almost all parts of the tool which improves stability and reliability. I kindly invite you to read the CHANGELOG.md file of the 0.9.4 development timeline to know everything in detail.

    v0.9.4-beta1

    Changes since: v0.9.4-beta

    Attention: the database model file structure has changed since the last stable 0.9.3. Models created in older releases will certainly fail to load due to incompatibilities because some attributes in the XML code don’t exist anymore or have changed during the development of 0.9.4-beta1. Before loading your database models in this new release, please, make sure to have a backup of them all and follow the steps presented by the model fix tool to patch the documents’ structure. Not paying attention to this situation may cause irreversible data loss! If the fix procedures aren’t enough to make your database models loadable again, please, ask for help at the official support channels!

    Summary: in preparation for the next major pgModeler release, the goal of this version was to bring only improvements and fixes to what was implemented until 0.9.4-beta and thus was done.

    pgModeler 0.9.4-beta1 brings a few entries in its changelog since we didn’t have serious bugs reported in the past two months. So, I decided to make some polishing in several portions of the tool.

    Anyway, the improvement that is worth mentioning in this release is the experimental support for timescaledb in reverse engineering. So, now pgModeler is capable of generating models from databases that make use of that PostgreSQL extension without major issues. For pgModeler 0.9.4, we expect that any problem that eventually appears regarding the importing of timescaledb-based databases can be solved.

    Below, the changelog entries of this version:

    • [New] Added extra PostGiS data types to PgSQLType.
    • [New] Created the method PgSqlType::isPostGiSType() which returns true if the current type is a PostGiS one.
    • [New] Created the method PgSqlType::reset() that clears some attributes of the type.
    • [New] Added the built-in type pg_lsn in order to make databases using timescaledb extension to be imported correctly.
    • [Change] Minor adjustment in windowsdeploy.sh to create zip packages.
    • [Change] Minor adjustment in demo version warning messages.
    • [Change] Adjusted the catalog query filters in ModelDatabaseDiffForm to retrieve system and extension objects according to the checkboxes «Import system objects» and «Import extension objects».
    • [Change] Adjusted the reverse engineering in such a way that the table children will follow the SQL disabled state of their parent tables.
    • [Change] Allowing importing pg_lsn attributes in usertype.sch.
    • [Change] Allowing the use of commas in enum type labels.
    • [Change] Improved the output of model fix operation in CLI.
    • [Change] The constants DataSeparator, UnescValueStart, UnescValueEnd, WildcardChar, FilterSeparator, FilterWildcard, FilterRegExp were moved from CoreUtilsNs to UtilsNs in order to be used in the parsers module.
    • [Change] In SchemaParser the meta char $ds (dollar sign) was renamed to $ms (money sign). Also, a new meta char $ds (data separator) was added and translates to the special data separator character UtilsNs::DataSeparator.
    • [Change] Minor adjustments in table.sch and foreigntable.sch schema files.
    • [Change] Improved DatabaseModel::getUserDefTypesReferences in order to get all references to postgis data types.
    • [Change] Improved ModelValidationHelper in order to set postgis extension a default comment when automatically creating it.
    • [Change] PgSQLTypeWidget now can be configured in such a way to disallow the configuration of type qualifiers like length, precision, interval, and some other. This is useful when configuring data types for objects that don’t require such attributes in the data type like parameter, aggregates, transforms, casts, operators.
    • [Change] Changed the behavior of Parameter::getCodeDefinition when generating SQL code. Now, any type qualifier (except dimension descriptor []) will be discarded.
    • [Fix] Fixed the catalog query that lists policies.
    • [Fix] Added a minor workaround in DatabaseImportHelper::getType in order to treat the «any» pseudo-type correctly.
    • [Fix] Minor fix in DatabaseImportForm in order to disable option buttons when no connection is selected.
    • [Fix] Fixed a segfault when importing domains with long expressions.
    • [Fix] Fixed the broken SQL generation for tables with columns/constraints disabled.
    • [Fix] Fix the name of the checkbox related to updates checking to avoid breaking the building when enabling NO_UPDATE_CHECK via qmake.
    • [Fix] Fixed the shortcuts of Copy/Paste actions in DataManipulationForm.

    v0.9.4-beta

    Changes since: v0.9.4-alpha1

    Attention: the database model file structure has changed since the last stable 0.9.3. Models created in older releases will certainly fail to load due to incompatibilities because some attributes in the XML code don’t exist anymore or have changed during the development of 0.9.4-beta. Before loading your database models in this new release, please, make sure to have a backup of them all and follow the steps presented by the model fix tool to patch the documents’ structure. Not paying attention to this situation may cause irreversible data loss! If the fix procedures aren’t enough to make your database models loadable again, please, ask for help at the official support channels!

    Summary: this version took a bit more to be released than expected but it’s finally here. As with any other beta version, this one brings few new features since it is more focused on polishing all that was made on alpha stages in preparation for the stable version.

    One new feature brought is the ability to generate GRANT and REVOKE commands to setup new role memberships through the diff process. Another addition is the support for included columns also known as non-key columns on indexes.

    Due to that improvement on diff, the original behavior of «Member of» tab on the role editing form was changed in such a way to make the code generated from the comparison between two roles more precise.

    This release also brings several improvements in the database design process. For example, the default match mode for FK constraints was changed to MATCH SIMPLE in compliance with the PostgreSQL docs. The layers feature was also patched and now the layers rectangles are correctly updated in certain circumstances.

    Now, in the database browser in SQL tool, the tree items collapse state is saved and restored after any updates requested by the user, improving the overall experience on that module.

    Finally, the whole set of changes of this release has 50 entries being 12 new features, 24 changes/improvements, and 14 bug fixes. Below, some key changes are highlighted. For the complete list of changes, please, take a look at the CHANGELOG.md.

    • [New] Added support for the generation of GRANT/REVOKE commands to control roles memberships via diff process.
    • [New] Added a fix step to reconfigure roles membership considering the deprecation of Role:RefRole attribute.
    • [New] Added support for included columns on indexes.
    • [New] Added the ability for referencing view columns on indexes.
    • [New] Added support for toggling update notifications for alpha/beta versions.
    • [New] Added support for save and restore the tree state in DatabaseExplorerWidget.
    • [Change] Dropped the support for MemberOf (Role::RefRoles) in order to make the diff between two roles more precise.
    • [Change] In RoleWidget the tab «Member Of» now works only as a convenience feature that adds the role being edited to the ones listed in that tab.
    • [Change] Restored the file pgmodeler.appdata.xml.
    • [Change] Allowing swap cluster level object ids in SwapObjectsIdsWidget when the objects are of the same kind.
    • [Change] Improvements in pgmodeler-se in such a way to control syntax highlighting settings per open editor.
    • [Change] Avoided the use of a working dir in .desktop file when installing mime types system-wide.
    • [Change] Improved the way layers rectangles are updated after undoing/redoing operations in OperationListWidget.
    • [Change] Changed the default match type in foreign key constraint to MATCH SIMPLE.
    • [Change] Minor adjustment in the ModelWidget::updateSceneLayers in order to force the update of all schemas.
    • [Change] Exceptions raised in BugReportForm when the «lastmodel» file isn’t found are now ignored.
    • [Change] Minor change in ModelValidationHelper in order to use table’s signature instead of name during name validation process.
    • [Fix] Fixed a crash in diff process caused by the ModelExportHelper instance when canceling the export to DBMS when an exception was raised.
    • [Fix] Fixed a crash in SwapObjectsIdsWidget when the user tried to swap objects using arrow keys.
    • [Fix] Minor fix in DatabaseExplorerWidget in order to display view’s children source code.
    • [Fix] Fixed the building of IndexWidget on Qt 5.14 and below.
    • [Fix] Fixed the problem on ModelDatabaseDiffForm that was not accepting pressing Return/Esc to respectively run the diff and close the dialog due to a conflict with the event loop instance in ModelDatabaseDiffForm::exec().
    • [Fix] Minor fix in the configuration of ObjectGroupId element in DatabaseImportForm::updateObjectsTree in order to avoid crashes when no root element is specified.
    • [Fix] Fixed the generation of aggregate functions when they use functions that contain parameters in which data type have spaces (double precision, character varying).
    • [Fix] Fixed a segfault that can happen when changing the number of parameters of a function already associated with an aggregate.
    • [Fix] Additional fix for layers not being correctly loaded from dbm file.

    v0.9.4-alpha1

    Changes since: v0.9.4-alpha

    Attention: the database model file structure has changed since the last stable 0.9.3. Models created in older releases will certainly fail to load due to incompatibilities because some attributes in the XML code don’t exist anymore or have changed during the development of 0.9.4-alpha1. Before loading your database models in this new release, please, make sure to have a backup of them all and follow the steps presented by the model fix tool to patch the documents’ structure. Not paying attention to this situation may cause irreversible data loss! If the fix procedures aren’t enough to make your database models loadable again, please, ask for help at the official support channels!

    Summary: after two months of intense work, we finally made it! The last alpha release for 0.9.4 is ready bringing some important fixes, changes, and interesting new features which I will briefly describe further.

    The first new feature in 0.9.4-alpha1 is the ability to export the database model in split SQL scripts. In this mode, pgModeler will create a single SQL file for each database object in the model. This is useful if you need to deploy your database in a custom way differently from that made by the tool. This feature is available in GUI as well as in CLI.

    Due to the introduction of a new syntax highlighting configuration file (for code snippets configuration), pgModeler will, from now on, create missing configuration files at startup. This will avoid breaking the tool’s execution when it detects the absence of any configuration file.

    pgModeler 0.9.4-alpha1 also brings the ability to drop databases quickly from the databases listing in SQL tool. Previously, there was the need to browse the database first and then drop it.

    This release also introduces a new auxiliary tool which is called pgModeler Schema Editor (pgmodeler-se). In this tool, it’s possible to edit and validate *.sch files as well as tweak syntax highlighting configuration files. You can use this tool to modify the SQL generation template files, for instance, so the generated syntax fits your needs.

    In data manipulation form, the sorting operation performed when clicking columns was adjusted. Now, the sorting will be triggered by holding the control key and clicking the desired column, and if the user only clicks a column without holding the control key will cause the entire column to be selected in the grid.

    The command-line interface was patched in such a way that now doesn’t crash anymore when performing a diff operation in which a database model is used as input. Another improvement to CLI is the introduction of the option —force in the mime type handling operation.

    The data type configuration widget received a simple improvement which adds a significant reduction in the time spent to configure a column data type for instance. Now, the user can just type the name of the desired data type to be used instead of selecting it by using the mouse. After typing the data type name just hit tab key to jump to the next field and the data type will be automatically configured.

    In preparation for pgModeler 1.0, a lot of changes were made in the files structure. The libraries subprojects were moved to the folder «libs», all the executables subprojects move to «apps» folder, and all the assets that are deployed with libraries and executables were moved to «assets» folder. Additionally to that reorganization, some libraries were renamed in order to give a better semantics.

    Finally, the whole set of changes of this release has 76 entries being 21 new features, 34 changes/improvements, and 21 bug fixes. Below, some key changes are highlighted. For the complete list of changes, please, take a look at the CHANGELOG.md.

    • [New] The bulk editing form now can be confirmed by the Ctrl+Return shortcut.
    • [New] The CLI now is capable of fixing models created before 0.9.4-alpha1 that have columns, functions, and other objects that reference extension types with simple names instead of schema-qualified names.
    • [New] Added an option to GeneralConfigWidget to toggle the displaying of schema names of columns data types on design view. This option affects only the rendering of objects, the code generation will keep displaying user-defined type names a in a schema-qualified way.
    • [New] Added the ability to drop databases from the database listing in SQLToolWidget.
    • [New] Created an auxiliary tool called pgModeler Schema Editor in order to help to edit *.sch files as well as validate their syntax.
    • [New] GeneralConfigWidget now restores the sch-highlight.conf to default.
    • [New] Added the environment variable name for schema editor app in GlobalAttributes.
    • [New] Added options to create only missing config files or recreate all config file in CLI.
    • [New] Added support for saving SQL definition in split files.
    • [New] Added support for split SQL generation in CLI.
    • [New] Added the ability to cancel the SQL file export process in GUI.
    • [New] Added new metacharacter to SchemaParser: $hs for #, $ps for %, $at for @, $ds for $.
    • [New] Added the option —force to the mime type handling operation on CLI.
    • [Change] Changed the behavior of column click on DataManipulationForm. Now, the sorting is triggered by holding control and clicking the desired column. Clicking a column without holding control will select all the items in that column.
    • [Change] Changed the behavior of extension types registration, now they will be forcibly registered with complete name (schema.name) in order to follow the same rule of user-defined data types so the reverse engineering can work properly for both types handled by extensions and those not.
    • [Change] Improved the type searching on PgSqlTypeWidget in such a way to display a popup with the data types matching the text typed by the user.
    • [Change] Improved the NewObjectOverlayWidget in such a way to allow only one action to be executed at a time.
    • [Change] Several clean-ups in the source code root. Removed unused files.
    • [Change] The subproject libpgmodeler was renamed to libcore and now moved to libs/
    • [Change] The subproject libpgmodeler_ui was renamed to libgui and now moved to libs/
    • [Change] The subproject libobjrenderer was renamed to libcanvas and now moved to libs/
    • [Change] The main executable subproject was renamed to pgmodeler and now moved to apps/
    • [Change] The main-cli executable subproject was renamed to pgmodeler-cli and moved to apps/
    • [Change] The crashhandler subproject was renamed to pgmodeler-ch and moved to apps/
    • [Change] Created a subfolder called «assets» to store all deployed files that aren’t libraries or executables: conf, lang, schemas, samples, etc.
    • [Change] Refactored all .pro/.pri files in order to reference pgModeler libraries from variables $$LIB[LIBNAME] instead of relative paths.
    • [Change] Renamed all icons that were in Portuguese to English.
    • [Change] In SnippetsConfigWidget replaced the SQL highlight by Schema micro-language highlighting.
    • [Change] Improved the syntax error messages in SchemaParser.
    • [Change] Adjusting the general toolbar width according to the screen DPI.
    • [Change] Source files and ui files in libgui were reorganized by contexts (widgets, tools, settings, utils, dbobjects)
    • [Change] pgModeler will now create missing config files in the startup.
    • [Change] Minor adjustment in AppearanceConfigWidget to enable scrollbars in the viewport so users on small screens can see the entire model.
    • [Fix] Fixed the crash handler and bug report form in such a way to load the last modified model opened before their execution.
    • [Fix] Fixed a crash when the database import process fails to create an inheritance relationship somehow.
    • [Fix] Fixed a bug in the database import process that was not correctly setting up the data type name of columns when the types were handled by extensions. Types handled by extension don’t need to have the schema name prepended.
    • [Fix] Minor fix in database import process in such a way to properly update the table rendering to hide schema names from title box.
    • [Fix] Fixed a malformed SQL code when configuring timestamptz in PgSqlType.
    • [Fix] Fixed a bug in SyntaxHighlighter that was wrongly highlighting the entire document when a multiline group had a line break as final expression.
    • [Fix] Fixed the syntax highligting files (xml, sql).
    • [Fix] Minor fix in CLI in order to associate .sch files to the schema editor.
    • [Fix] Fixed a bug that was causing all layers to be active even if there was some inactive (invisible) when adding a new layer.
    • [Fix] Minor fix in SyntaxHighlighter in order to return unformatted word when the group can’t be forcibly defined in all exception cases when the word doesn’t match any group.
    • [Fix] Fixed the description of the option —output in CLI.
    • [Fix] Fixed a bug in CLI that could lead to segfault when using diff option and a database model as input.
    • [Fix] Minor fix in PgSQLTypeWidget to capture the text changing signal on data type combo so the type format input can be properly updated when the user types the desire data type.

    v0.9.4-alpha

    Changes since: v0.9.3

    Attention: the database model file structure has changed since the last stable 0.9.3. Models created in older releases will certainly fail to load due to incompatibilities because some attributes in the XML code don’t exist anymore or have changed during the development of 0.9.4-alpha. Before loading your database models in this new release, please, make sure to have a backup of all of them and follow the steps presented by the model fix tool to correct the documents’ structure. Not paying attention to this situation may cause irreversible data loss! If the fix procedures aren’t enough to make your database models loadable again, please, ask for help at the official support channels!

    Summary: it took almost half-year to conclude the first alpha release of 0.9.4 due to several problems I was facing. Anyway, I kept working on pgModeler at a slower pace and releasing snapshot buildings until we had reached an acceptable state of maturity for an alpha release.

    Attending to some requests, I dedicated some time to bring the support for multiple layers. Basically, pgModeler now allows graphical objects to be in different layers which can be toggled in a dedicated widget in order to denote a custom context depending on the user’s need. Additionally to multiple layers support, it was added support for displaying layers rectangles around the objects in order to demonstrate in which layer an object is in. The CLI also has been patched in such a way to fix models created in an older version (until 0.9.3) so they can support multiple layers correctly.

    The metadata handling was improved in such a way to allow the manipulation of layers’ information. Another improvement on this feature was the addition of a new option that allows the merging of duplicated text boxes, generic SQL objects, and tags. By default, duplicated objects of those kinds are ignored.

    This release also brings support for configuration parameters and transform types on functions and procedures, and the support for PARALLEL attribute on functions. The import and diff processes were also improved to support the mentioned attributes on functions and procedures.

    There were other improvements in the general usage of the tool. For instance, the main window can now be resized to a minimum of 640×480 attending to the requests of those who work on smaller screens. In the design view, now it’s possible to change the color of the grid lines, canvas background, and page delimiter lines on the general settings.

    Other fixes and improvements that are worth mentioning: the removal of the diff option «Trucante before alter columns» due to the risk of data loss in very specific use cases. The database model loading process was fixed and now it loads correctly the model’s changelog entries without raising errors. Several fixes were also applied to the code generation to avoid malformed SQL code.

    Finally, the whole set of changes of this release has 67 entries being 13 new features, 25 changes/improvements, and 29 bug fixes. Below, some key changes are highlighted. For the complete list of changes, please, take a look at the CHANGELOG.md.

    • [New] Added compatibility code that allows loading models created in versions before 0.9.4-alpha without losing layers and active layers information.
    • [New] Added an option to the metadata handling operation that serves to indicate if duplicated objects (textboxes, tags, generic sql) must be merged or not.
    • [New] Added support for configuration parameters and transform types on functions and procedures.
    • [New] Added the ability to rename the default layer.
    • [New] Added support for setup, in general settings, the custom color for grid lines, canvas area and page delimiter lines.
    • [New] Added support for multiple layers on the model.
    • [New] Added support for PARALLEL attribute to functions.
    • [Change] Minor adjustments on Messagebox resizing during first display.
    • [Change] Minor improvement on Messagebox in order to display the stack trace toggle button in a more intuitive way.
    • [Change] Changed the behaviour of the method ObjectsScene::removeLayers, now it’ll allow the resetting or not the layers of the objects.
    • [Change] Adjusted the minimum size of the main window to 640×480 so it can fit in smaller screens.
    • [Change] Change on the search path for PluginsDir to use getPathFromEnv().
    • [Change] DatabaseModel will now create a default layer in the constructor.
    • [Change] The database model will add the default layer to the loaded model if there isn’t a single layer identified.
    • [Change] DatabaseModel when loading older database model files will generate random layer colors.
    • [Change] Improved the window title of DataManipulationForm in sucha a way to display the currently browsed table.
    • [Change] Improved the selection of layers to be associated to object in context menu (Quick > Set layers). Now a floating widget is use to select multiple layers for the object selection in the canvas area.
    • [Change] Updated the sample models to use «layers» attributes on graphical objects.
    • [Change] pgModeler CLI will now rename «layer» attributes to «layers» in order to reflect the multiple layers support for older models.
    • [Change] The option «Truncate before alter columns» in the diff process was removed since its use is discouraged and dangerous in some situations.
    • [Fix] Minor fix in the table’s catalog query in order to avoid setting up a partitioning strategy when the table is not a partitioned one.
    • [Fix] Minor fix in function.sch in order to generate transform types only for PostgreSQL >= 9.5.
    • [Fix] Minor fix to avoid black canvas when using settings from 0.9.3 or below on 0.9.4-alpha.
    • [Fix] Minor fix in ObjectsScene in such a way to update layer rects when the grid alignment option is toggled.
    • [Fix] Fixed the buttons shortcuts on LayerConfigWidget.
    • [Fix] Minor fix on SchemaView to compute the last position any time the object is reconfigured.
    • [Fix] Fixed the key combination to trigger the magnifier tool.
    • [Fix] Minor fixes in ModelWidget, MainWindow to update scene layer settings correctly.
    • [Fix] Fixed the CLI in such a way to update scene layer settings so the exporting processes can generate graphical files correctly.
    • [Fix] Fixed a bug in the layers removal process that was causing objects to be placed in a incorrect layer index after the removal.
    • [Fix] Fixed the «Fix» menu in main tool bar.
    • [Fix] Fixed a bug in ModelWidget that was causing overlay to be displayed when a textbox object was selected.
    • [Fix] Fixed wrong text in collationwidget.ui.
    • [Fix] Fixed a bug during the loading of changelog entries.
    • [Fix] Fixed the display of warnings during export in ModelExportForm.
    • [Fix] Fixed the display of warning messages during export in ModelDatabaseDiffForm.
    • [Fix] Fixed a malformed SQL code for triggers.
    • [Fix] Fixed the broken build on Qt 5.9.x.
    • [Fix] Fixed a bug that was preventing special PKs to be properly configured.
    • [Fix] Fixed the SQL generation of functions based on internal language.

    ** ATTENTION **

    THIS PROJECT HAS MOVED TO:
    https://github.com/pgmodeler/pgmodeler

    New releases only will be available on GitHub.

    PostgreSQL Database Modeler, or simply pgModeler is an open source project of a CASE tool for modeling PostgreSQL that merges the classical concepts of modeling using entity-relationship diagrams with specific features that only PostgreSQL implements. The pgModeler translates the models created by the user to SQL code and apply them onto database clusters from version 8.0 to 9.1.

    Please, let me know how the pgModeler is working on your computer! Help to improve this project, give your feedback about the software or report any bug at «Tickets» page.

    Do not forget to detail the bug and if possible attach a screenshot or model database
    which expressed the bug.

    Follow the pgModeler profile on Facebook/Twitter and be up-to-date with new features, fixes and releases.

    https://www.facebook.com/pgmodeler
    https://twitter.com/pgmodeler

    Features

    • SQL (specific for PostgreSQL) Code Generator
    • Database Modeling UI
    • XML Based model file
    • Developed in Qt4

    License

    GNU General Public License version 2.0 (GPLv2)

    Meaningful, free employee award system for your team. Icon

    Accolader focuses on employee awards, not rewards. Peer recognition for a job well done is more meaningful than a small monetary reward. Accolader surfaces these achievements in a fun, easy to use lightweight tool that is easy to integrate and free to use.

    User Ratings


    5.0

    out of 5 stars

    ★★★★★

    ★★★★

    ★★★

    ★★

    ease
    1 of 5
    2 of 5
    3 of 5
    4 of 5
    5 of 5

    0 / 5

    features
    1 of 5
    2 of 5
    3 of 5
    4 of 5
    5 of 5

    0 / 5

    design
    1 of 5
    2 of 5
    3 of 5
    4 of 5
    5 of 5

    0 / 5

    support
    1 of 5
    2 of 5
    3 of 5
    4 of 5
    5 of 5

    0 / 5

    User Reviews

    • All
    • ★★★★★
    • ★★★★
    • ★★★
    • ★★
    • Great looking app, and useful to create easily ER Diagrams.

    • It looks that it will be a useful tool for postgres administrators. If you need translation to Spanish (ES_MX) just let me know.

    Read more reviews >

    Additional Project Details

    Languages

    English, Brazilian Portuguese

    Intended Audience

    Developers

    User Interface

    X Window System (X11), Win32 (MS Windows), KDE, Qt

    Programming Language

    C++

    Database Environment

    PostgreSQL (pgsql)

    2008-08-29

    Аналоги и альтернативы pgModeler

    Наиболее популярные альтернативы и аналоги pgModeler для Windows, Mac, Linux.

    MySQL Workbench

    Oracle Corporation

    FreeOpen Source


    MySQL Workbench — это унифицированный визуальный инструмент для архитекторов баз данных, разработчиков и администраторов баз данных. MySQL Workbench обеспечивает моделирование данных, разработку SQL и…

    dbForge Studio for MySQL

    Devart

    Freemium


    dbForge Studio for MySQL является универсальным клиентским интерфейсом MySQL и MariaDB для управления, администрирования и разработки баз данных. Инструмент GUI от Devart MySQL предоставляет утилиты д…

    pgAdmin

    FreeOpen Source


    pgAdmin — самая популярная и многофункциональная платформа для администрирования и разработки с открытым исходным кодом для PostgreSQL, самой передовой базы данных с открытым исходным кодом в мире. Пр…

    Skipper

    Inventic s.r.o.

    Commercial


    Skipper, ранее ORM Designer, представляет собой инструмент визуализации и генератор кода для любимых рамок ORM (Doctrine ORM, Doctrine2 ORM, Propel ORM и CakePHP). Приложение позволяет редактировать м…

    Vertabelo

    e-point SA

    Commercial


    Онлайн-инструмент для визуального проектирования баз данных. Это одно веб-приложение поддерживает семь основных движков базы данных: PostgreSQL, MySQL, Microsoft SQL Server, SQLite, Oracle 11g, IBM DB…

    SQL Power Architect

    Free Personal


    Инструмент моделирования данных SQL Power Architect был создан разработчиками хранилищ данных и имеет множество уникальных функций, специально предназначенных для архитектора хранилища данных. Это поз…

    SAP PowerDesigner

    SAP Software

    Commercial


    SAP PowerDesigner: инструменты Enterprise Architecture для успеха цифровых преобразований. Планирование и управление сложными инициативами преобразования бизнеса с помощью SAP PowerDesigner. Инструмен…

    TeamSQL

    TeamSQL

    FreeOpen Source


    TeamSQL — это кросс-платформенный, расширяемый клиент данных, который позволяет работать с несколькими средами баз данных. Как следует из названия, сотрудничество является фокусом, так как его легко и…

    DB Designer

    fabFORCE

    Free


    DBDesigner 4 представляет собой визуальную систему проектирования баз данных, которая интегрирует проектирование, моделирование, создание и обслуживание баз данных в единую бесшовную среду. Он сочетае…

    erwin Data Modeler

    erwin, Inc.

    Freemium


    erwin Data Modeler обеспечивает совместную среду для управления корпоративными данными, хотя интуитивно понятный графический интерфейс. Благодаря централизованному представлению определений ключевых д…

    Invantive Studio

    Invantive BV

    Commercial


    Мощная среда разработки программного обеспеченияInvantive Studio — это богатая среда разработки программного обеспечения, которая дает инженерам и аналитикам возможность разрабатывать и разрабатывать …

    Database Designer for PostgreSQL

    MicroOLAP Technologies LTD.

    Commercial


    Конструктор баз данных MicroOLAP для PostgreSQL — это комплексный инструмент CASE с интуитивно понятным графическим интерфейсом, который позволяет визуально визуализировать ясную и эффективную структу…

    DeZign for Databases

    Datanamic

    Commercial


    Инструмент проектирования и моделирования баз данных — DeZign для баз данных. Особенности: визуальный дизайн базы данных, моделирование данных ER диаграмм (ERD), обратная инженерия, создание базы данн…

    Model Xtractor

    XtractPro

    Freemium


    Бесплатный инструмент для моделирования визуальных данных для самых популярных однонаправленных реляционных баз данных с обратной обработкой. С общим графическим интерфейсом и автоматически генерируем…

    Postbird

    Free


    Простой в использовании клиент PostgreSQL GUI…

    06/03/2021

    pgModeler is an Open Source software allowing to model a database, that is to say to schematize everything related to the construction of a base (tables, fields, relations, constraints …) and oriented towards the PostgreSQL DBMS.

    The executables are however not free, unless you build them by your own means. Here is how to proceed to generate a version. I will rely here on version 0.9.3 of December 2020, and managing up to PostgreSQL v.13.

    • Make sure you have enough disk space: you need at least 3.5 GB available.
    • Download MSys2. It is a suite of tools for compiling sources to generate Windows Executable.
    • Download the sources of pgModeler : you can download the file pgmodeler-0.9.3.tar.gz
    • Install MSys2
    • Before running it, create the environment variable MSYS_PATH_TYPE with the value of the binary files of Mingw (by default c:msys64mingw64bin). It helps to launch compilation commands.
    • Run MSys2 (you must start 64-bit MGWin version).
    • Copy the downloaded file pgmodeler-0.9.3.tar.gz (without unzipping it) into the folder msys2/home/{PROFIL}. This last parameter {PROFIL} is in fact the name of your Windows profile, which was taken over by MSys2
    • On MSys2, start the decompression of the file with gzip and tar with the following commands:

      gunzip pgmodeler-0.9.3.tar.gz
      tar -xf pgmodeler-0.9.3.tar
      rm pgmodeler-0.9.3.tar

    • A directory pgmodeler-0.9.3 was then created, containing the sources of pgModeler.
    • If you have installed MSys2 in another folder than c:MSys64 :
      • Open the «pgmodeler.pri» file with a text editor (created in msys2/home/{PROFIL}/pgmodeler-0.9.3) and search lines starting with «windows {» and containing » !defined(PGSQL_LIB, var)». Then modify the following 4 lines according to the path where you installed MSys2:

        !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

    • Save the text file and enter the following command on MSys2 (if you have a firewall, give an access to MSys2) :
    • A request to close MSys2 is displayed at the end. Validate it then restart the software.
    • Run the following command again to dowload the other packages :
    • Download other packages that will also be used for compilation

      pacman -S base-devel mingw-w64-x86_64-make mingw-w64-x86_64-gcc mingw-w64-x86_64-postgresql mingw-w64-x86_64-qt5

    • Create the executable destination directory
    • Create the makefile file :

      cd pgmodeler-0.9.3
      export INSTALLATION_ROOT=~/pgmodeler_final
      qmake -r CONFIG+=release PREFIX=$INSTALLATION_ROOT pgmodeler.pro

      Don’t be affraid if you get the following warning : «WARNING: Failure to find: obj/windows_ico.qrc»

    • Start the compilation. This operation is quite long, depending on the performance of your system :
    • Then:
    • Then go to the installation directory and apply:

      cd $INSTALLATION_ROOT
      windeployqt pgmodeler.exe pgmodeler_ui.dll

    • Finally, copy the latest DLL files to the target directory

      cd $MSYS2_ROOT/mingw64/bin/
      cp libicuin*.dll libicuuc*.dll libicudt*.dll libpcre2-160.dll libharfbuzz-0.dll libpng16-16.dll libfreetype-6.dll libgraphite2.dll libglib-2.00.dll libpcre-1.dll libbz2-1.dll libssl-1_1-x64.dll libcrypto-1_1-x64.dll libgcc_s_seh-1.dll libstdc++-6.dll libwinpthread-1.dll zlib1.dll libpq.dll libxml2-2.dll liblzma-5.dll libiconv-2.dll libintl-8.dll libbrotlidec.dll libbrotlicommon.dll libdouble-conversion.dll libzstd.dll $INSTALLATION_ROOT

    Once all these commands are done, you can run pgModeler from the installation directory.

    Dernière modification le 06/03/2021

    Однажды в студёную зимнюю… день понадобился мне бесплатный инструмент для проектирования баз данных. Такой, который бы ещё и скрипты умел генерировать. Очень нравится Visual Paradigm, но стоит он, конечно, как самолёт. Поэтому, вооружившись гуглом и советами знакомых разработчиков, отправился я на поиски.

    В итоге набрёл на весьма неплохой инструмент pgModeler. Единственное, не очень понравилось, что sql-скрипты он умеет генерировать только для PostgreSQL. Но т.к. на тот момент (да и сейчас, а то и потом) использовалась эта база данных, то этого инструмента было вполне достаточно.

    Умеет он, действительно, много. И таблицы рисовать, и чеки на поля навешивать, и даже функции позволяет писать (которые будут включены в итоговый скрипт при генерации). Подробнее о возможностях можно почитать на сайте проекта.

    pgModeler — это Open Source проект, но, чтобы получить бинарники, необходимо заплатить денюжку. Бесплатно доступны только исходники проекта… Которые надо собрать… Используя Qt…

    С Qt я сталкивался лишь раз в жизни — на лабах в универе, — да и было это давно и неправда. Видимо, поэтому у меня возникли некоторые сложности при сборке. Ну либо потому, что годных статей нашёл не так много (на самом деле, на тот момент нашёл лишь одну), а документация по сборке весьма скудная.

    Что ж, переходим к самой сборке.

    Окружение

    Система: Windows 7 x64.
    Версия pgModeler: 0.9.2-alpha.
    Версия PostgreSQL: 10.4.
    Qt: Qt 5.6.3 for Windows 32-bit (MinGW 4.9.2).

    Сборка

    Приведённая инструкция была написана в соответствии с указанным выше окружением.

    1. Скачать исходники.
    2. Скачать PostgreSQL.
    3. Установить в C:PostgreSQL.
      ВАЖНО!
      Установить можно в любую директорию, но тогда придётся поменять путь в файле сборки. Также в пути не должны присутствовать пробелы, иначе сборщик будет пытаться разбить этот путь на несколько.
    4. Скачать Qt.
      ВАЖНО!
      Устанавливать нужно 32-х битную версию с MinGW даже на 64-х разрядную систему, т.к. в природе существуют только 32-х битные версии Qt и MinGW, которые умеют работать друг с другом.
    5. Установить Qt в C:QtQt5.6.3.
    6. Добавить в переменную среды Path пути до Qt и MinGW.
      1. Перейти в КомпьютерСвойства системыДополнительные параметры системыПеременные среды…Системные переменныеPathИзменить.
      2. Добавить для:
        qmake — C:QtQt5.6.35.6.3mingw49_32bin.
        mingw32-make — C:QtQt5.6.3Toolsmingw492_32bin.
    7. В исходниках в файле pgmodeler.pri при необходимости изменить пути.
    8. Создать папку C:pgModeler для скомпилированного приложения.
    9. Открыть cmd.
    10. Перейти в папку с исходниками с помощью cd.
    11. Для настройки конфигурационных файлов необходимо выполнить
      qmake PREFIX+=C:/pgModeler -r -spec win32-g++ CONFIG+=release pgmodeler.pro
    12. Для компиляции проекта выполнить
      mingw32-make -j5
    13. Чтобы переместить скомпилированные файлы в C:pgModeler, выполнить
      mingw32-make install
    14. Перейти в папку с приложением
      cd C:pgModeler
    15. Скопировать файлы Qt в папку приложения
      windeployqt pgmodeler.exe
    16. Скопировать следующие DLL в папку приложения:
      • C:PostgreSQL10binlibeay32.dll
      • C:PostgreSQL10binlibiconv-2.dll
      • C:PostgreSQL10binlibintl-8.dll
      • C:PostgreSQL10binlibpq.dll
      • C:PostgreSQL10binlibxml2.dll
      • C:PostgreSQL10binssleay32.dll
    17. Для запуска без Qt в системе скопировать следующие DLL в папку с приложением:
      • C:QtQt5.6.35.6.3mingw49_32binQt5Network.dll
      • C:QtQt5.6.35.6.3mingw49_32binQt5PrintSupport.dll

    Заключение

    Вот, в общем-то, и всё. Надеюсь, эта статья будет кому-то полезной.


    Пытался понять, как собрать данное приложение на основе статьи. Но инструкция немного косячная, местами непонятная и есть лишние действия, например, установка стороннего MinGW (к слову говоря, у меня с Qt 5.6.3 не заработал, из-за чего пришлось отойти от сей статьи и разобраться что вообще и как) или скачивание libxml2, которая есть в PostgreSQL.

    Официальная, «очень полезная», «понятная» и весьма «полная» инструкция по сборке данного приложения находится тут. Правда, именно в ней пишут про совместимость Qt и MinGW.

    Автор: 1_van

    Источник

    pgmodeler / pgmodeler
    Goto Github
    PK

    View Code? Open in Web Editor
    NEW

    2.6K
    132.0
    362.0
    43.27 MB

    Open-source data modeling tool designed for PostgreSQL. No more typing DDL commands. Let pgModeler do the work for you!

    Home Page: https://pgmodeler.io

    License: GNU General Public License v3.0

    QMake 0.85%

    C++ 99.04%

    Shell 0.01%

    Batchfile 0.01%

    C 0.10%

    c-plus-plus

    entity-relationship-diagram

    ddl-commands

    sql-standards

    pgmodeler

    postgresql

    database-modeling

    code-generator

    database

    pgmodeler’s Introduction

    pgmodeler_mainwindow

    Linux build
    Windows build
    macOs build

    🚀 What’s pgModeler?

    An open-source, multiplatform database modeler for PostgreSQL. This project aims to be a reference database design tool when it comes to FOSS in the PostgreSQL ecosystem.
    Its feature-rich interface allows quick data modeling and fast code deployment on a server. It also supports reverse engineering by creating a visual representation of existing databases. Besides, pgModeler can also generate SQL scripts to sync a model and a database through the process called diff.
    This tool is not about modeling only, it also counts with a minimalist but functional database server administration module that allows the execution of any sort of SQL commands, and provides database browsing and data handling in a simple and intuitive UI.

    For more details about additional features, screenshots, and other useful information, please, visit the project’s official website. For any feedback about the software visit the Issues page. Additionally, follow pgModeler on Twitter and be up-to-date with new features, fixes, and releases.

    🛠️ Building & Installing

    Being a multiplatform software, the building process differs slightly on each supported OS. This way, the installation procedures are fully described in the Installation section on the project’s website.

    You may want to check the official plugin repository as well for information regarding extending pgModeler’s features.

    🗒️ Licensing

    This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 3.

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    See LICENSE for details.

    ❤️ pgModeler needs your support!

    • 🪙 Financial support: a lot of knowledge and effort is being put into this project during the last 16 years so that a reliable and constantly improved product can be delivered to the community. pgModeler is an independent project and has no sponsorship, living exclusively from donations and pre-compiled packages purchases. If you like pgModeler and think it deserves a financial contribution, go ahead and help it!

    • 👨‍💻 Developers: pgModeler has reached a state where its solo developer can’t handle all the modifications and new feature requests by himself anymore in a reasonable time. So if you know how to code in C++ using the Qt framework, and want to contribute to the development, let me know! I’ll be grateful for any help with the project maintenance!

    • 🗣️ Other contributors: developer or not you can always help this project by spreading the word about it. Share this repository in your social networks, workplaces, family & friends. The more the people know about pgModeler the bigger will be the support for the project, thus creating a virtuous cycle.

    📑 Changelog

    The detailed changelog can be seen on CHANGELOG.md file.

    🗃️ Older Releases & Code

    Older releases of pgModeler can be found on Sourceforge.net.

    💣 Known Issues

    • Due to the usage of Qt’s raster engine to draw objects, the process of handling objects on the canvas tends to get slower as lots of objects are created causing constant CPU usage. Heavy performance degradation can be noticed when dealing with models with ~500+ tables and/or relationships. There’re plans to improve the speed of drawing operations, for large models, in future releases. Changing the relationship connection mode and render smoothness options may help in the performance when handling big database models.

    • The diff process still presents false-positive results due to its limitations. Sometimes, there is the need to run the process twice and/or tweaking the options to get the full changes.

    • pgModeler does not fully support the quoted identifier notation. When using quoted identifiers only the following characters are accepted in the middle of names: a-z A-Z 0-9 _ . @ $ — / space. The use of non-ASCII characters in the objects’ names also implies in automatic usage of quoted notation.

    • pgModeler can’t be compiled with Microsoft Visual Studio due to the use of some GCC and clang extensions.

    • Compiling the source using ‘-Wconversion’ (disabled by Qt in its defaults) generates a lot of warnings. These warnings are 99% harmless and there are no plans to fix them in a near future.

    • pgModeler can sometimes crash during the export, import, validation or diff processes due to some threaded operations that, depending on the size and the arrangement of the model, cause race conditions between threads.

    • Due to the particularities of executing bundles on macOS, the file association does not work correctly on this system. So it’s not possible to open a model file by clicking it on Finder.

    pgmodeler’s People

    pgmodeler’s Issues

    I cannot find pgmodeler.exe

    Hi,
    I have downloaded the pgmodeler and I have runned the start-pgmodeler.bat that calls for pgmodeler.exe. The problem is: there is no pgmodeler.exe file, so I could not test the program.
    What can I do to run it in microsoft windows?

    Compiled Edition

    I’d love to use the product but I don’t want to have to compile it myself. Can someone please compile the Windows version (or preferably all of the platforms) and make them available for download for those of us who just want to get using the product? Thanks in advance.

    compile error on CentOS6.3

    trying to build pgmodeler with postgres 9.0. I faked my way around the lack of pgsql pkg-config, but the compile fails with…

    g++ -c -m64 -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector —param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include/libxml2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib64/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/Qt3Support -I/usr/include -I../libutil/src -I../libconexbd/src -I../libparsers/src -I../libpgmodeler/src -I../libobjrenderer/src -Isrc -I/usr/pgsql-9.0/include -I/usr/X11R6/include -Imoc -Isrc -o obj/formprincipal.o src/formprincipal.cpp
    In file included from src/confconexoeswidget.h:24,
    from src/formconfiguracao.h:27,
    from src/formprincipal.cpp:32:
    src/ui_confconexoeswidget.h: In member function ‘void Ui_ConfConexoesWidget::retranslateUi(QWidget_)’:
    src/ui_confconexoeswidget.h:460: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:463: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:466: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:469: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:484: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:487: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:490: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:493: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/formprincipal.cpp: In member function ‘void FormPrincipal::imprimirModelo()’:
    src/formprincipal.cpp:1028: error: ‘PrintCurrentPage’ is not a member of ‘QAbstractPrintDialog’
    make[1]: *_* [obj/formprincipal.o] Error 1
    make[1]: Leaving directory `/home/piercej/pgmodeler-pgmodeler-cdc7fdc/libpgmodeler_ui’
    make: *** [sub-libpgmodeler_ui-make_default-ordered] Error 2

    and I have no idea where to go from there.

    these are the versions of everything on this platform…

    $ rpm -qa gcc* qt* libxml2* postgres* |sort
    gcc-c++-4.4.6-4.el6.x86_64
    gcc-4.4.6-4.el6.x86_64libxml2-2.7.6-8.el6_3.3.x86_64
    libxml2-devel-2.7.6-8.el6_3.3.x86_64
    libxml2-python-2.7.6-8.el6_3.3.x86_64
    postgresql90-9.0.10-1PGDG.rhel6.x86_64
    postgresql90-contrib-9.0.10-1PGDG.rhel6.x86_64
    postgresql90-devel-9.0.10-1PGDG.rhel6.x86_64
    postgresql90-docs-9.0.10-1PGDG.rhel6.x86_64
    postgresql90-libs-9.0.10-1PGDG.rhel6.x86_64
    postgresql90-server-9.0.10-1PGDG.rhel6.x86_64
    qt3-3.3.8b-30.el6.x86_64
    qt-4.6.2-24.el6.x86_64
    qt-devel-4.6.2-24.el6.x86_64
    qt-sqlite-4.6.2-24.el6.x86_64
    qt-x11-4.6.2-24.el6.x86_64

    Won’t compile in 64bit env

    OpenSUSE 12.x/64

    $ qmake pgmodeler.pro
    $ make
    cd libutil/ && /usr/bin/qmake /pro/3gl/pgmodeler-pgmodeler-8bad3f4/libutil/libutil.pro -o Makefile
    cd libutil/ && make -f Makefile
    make[1]: Entering directory /pro/3gl/pgmodeler-pgmodeler-8bad3f4/libutil' g++ -c -m64 -pipe -O2 -D_REENTRANT -Wall -W -fPIC -DQT_NO_DEBUG -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtUiTools -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtXml -I/usr/include/Qt3Support -I/usr/include -I. -I/usr/local/pgsql/include -I/usr/include -I/usr/include/libxml2 -Isrc -I../libconexbd/src -I../libparsers/src -I../libpgmodeler/src -I../libobjrenderer/src -I../libpgmodeler_ui/src -I. -o obj/excecao.o src/excecao.cpp rm -f libutil.so.1.0.0 libutil.so libutil.so.1 libutil.so.1.0 g++ -m64 -Wl,-O1 -shared -Wl,-soname,libutil.so.1 -o libutil.so.1.0.0 obj/excecao.o -L/usr/lib64 /usr/local/pgsql/lib/libpq.so -lxml2 -lQt3Support -L/usr/lib64 -lQtSql -L/usr/X11R6/lib64 -lQtNetwork -lQtUiTools -lQtXml -lQtGui -lQtCore -lpthread g++: /usr/local/pgsql/lib/libpq.so: No such file or directory make[1]: *** [../build/lib/libutil.so.1.0.0] Error 1 make[1]: Leaving directory/pro/3gl/pgmodeler-pgmodeler-8bad3f4/libutil’
    make: *** [sub-libutil-make_default-ordered] Error 2
    $ locate libpq.so
    /usr/lib64/libpq.so
    /usr/lib64/libpq.so.5
    /usr/lib64/libpq.so.5.4
    $

    Empty passwords doesn’t permitted

    ACTUAL RESULTS

    I try to set database connection and have no password to postgresql. When I omit to set password field in Edit->Configuration menu «Add» and «Test» buttons in settings dialog window become gray which isn’t allow me to add such connection.

    EXPECTED RESULTS

    On developers machines it’s very frequent situation when there is no password to database because you all the time juggling with database creation and dropping, etc.
    So, it would be good if the tool doesn’t force people despite that to have a password set for database with real data is a good rule.

    Functionality to automatically (re)arrange tables

    It would be quite handy if one could click some button that (re)arranges all tables in the project for optimal overview. Now you have to think it through in advance where you should place the tables to avoid a messy view…or move around the tables over and over again when you realize you have to add some table and/or relationship in the middle of the work area.

    Exported SQL Sequences

    When exporting to SQL or uploading to server, tables dependent on sequences fail to create because sequences are pushed to the end of SQL script. Sequences should be created before tables, which I manually edit in SQL.

    Table removal issue

    Removing a table results in the removal of that table plus the table that happens to follow in the xml file.

    pgmodeler-intl.pro causes invalid Makefile

    After qmake, Makefile refers to ../build instead of build, causing all to fail
    I did not see an easy way out of this

    $ qmake pgmodeler-intl.pro
    $ grep build/ Makefile
    # Makefile for building: ../build/pgmodeler
    LIBS          = $(SUBLIBS)  -L/usr/lib ../build/lib/libutil.so ../build/lib/libparsers.so ../build/lib/libconexbd.so ../build/lib/libobjrenderer.so ../build/lib/libpgmodeler.so ../build/lib/libpgmodeler_ui.so -lQt3Support -L/usr/lib -lQtSql -L/usr/X11R6/lib -lQtNetwork -lQtUiTools -lQtXml -lQtGui -lQtCore -lpthread
    DESTDIR       = ../build/
    TARGET        = ../build/pgmodeler
            @$(CHK_DIR_EXISTS) ../build/ || $(MKDIR) ../build/
            cp res/imagens/pgmodeler_logo_grande.png ../build/pgmodeler.png ; cp -r ../schemas/ ../build; cp -r ../conf/ ../build; cp -r ../lang/ ../build; cp -r ../samples ../build; cp -r ../*.md ../build; cp -r ../LICENSE ../build; cp -r ../start-pgmodeler.sh ../build
            -$(DEL_FILE) ../build/pgmodeler.png -r ../build/*
    $

    when model overview opened, then can’t been closed

    the overview alway been top of any programs windows. event it is not pgmodeler when the pgmodeler not minimize。

    Enable stack trace on Windows system.

    On windows system is not possible ATM get the stacktrace when crashhandler pops up. Need to find some alternative like CaptureStackBackTrace API to enable function trace.

    tip: How to solve libpq dependency issue on Debian Wheezy to complie pgmodeler

    It could be worth to add that tip somewhere to wiki page to help other.

    So, the main problems is that libpq wasn’t found and we would like to assist pkg-config tool with that.
    What I found is the easiest way to solve this is to add libpq.pc file which contains information about library and let test in COMPILING.md passed.

    • Make sure you have installed libpq-dev and libpq5 packages. This is at least what I have installed.
    apt-get install libpq-dev libpq5
    

    or

    aptitude install libpq-dev libpq5
    
    • Create file /usr/lib/x86_64-linux-gnu/pkgconfig/libpq.pc with following content.
    prefix=/usr
    exec_prefix=${prefix}
    libdir=${prefix}/lib
    includedir=${prefix}/include
    
    Name: LibPQ
    Version: 5.0.0
    Description: Library PQ
    Requires:
    Libs: -L${libdir} -lpq
    Cflags: -I${includedir}/postgresql
    
    • Run suggested in COMPILING.md tests.

    BTW, on some systems given path is absent. In that case you should make small investigation.
    What I did is to run man pkg-config and look for a paths where pkg-config utility usually stores *.pc files. There were few pathes mentioned there. All ended with pkgconfig. So, I just run (with root user credentials) search to find all directories with similar names.

    find / -depth -type d -name pkgconfig
    

    or

    sudo find / -depth -type d -name pkgconfig
    

    Here is what I saw on my system.

    /usr/lib/pkgconfig
    /usr/lib/x86_64-linux-gnu/pkgconfig
    /usr/share/pkgconfig
    

    I selected /usr/lib/x86_64-linux-gnu/pkgconfig because there was libxml-2.0.pc, another dependency for pgmodeler.

    Windows build has a «weird» default dir

    Hi guys,

    Your windows build is shipping with the bat file pointing to a personal directory.

    I would suggest that:

    • Include in the documentation how to change the bat file;
    • Choose a simple dir for default root, such as C:pgModeler ;

    *** Translators wanted!!! ***

    Hello!

    This Issue is intended to reunite people interested on making translations to their language for pgModeler.

    Necessary Tools: Qt Linguist (bundled with Qt Framework)

    Translation steps:

    1. Use the most recent pgModeler source code
    2. Edit the file ‘pgmodeler-intl.pro’ and add the name of your language file:
       TRANSLATIONS =  lang/pgmodeler.pt_BR.ts 
                       lang/pgmodeler.[YOUR LANG HERE].ts
    
    1. Generate the TS file:
        $ lupdate -no-obsolete pgmodeler-intl.pro
    
    1. Edit the generated file lang/pgmodeler.YOULANG.ts on Qt Linguist and translate the phrases to your language. Do not forget to mark item as finished through the command Crtl + ENTER on every phrases you translate.

    2. Generate the compiled version of translation:

       $ lrelease pgmodeler-intl.pro
    

    After that, the file pgmodeler.YOURLANG.qm will be generated. This is the file responsible to translate the pgModeler UI. Once created you can upload the file via «Pull request» here on Github.

    NOTE: Make sure to update your pgModeler fork before start or resume your work on translation. After update run the lupdate command again (step 3).

    Won’t compile on OpenSUSE 12.2

    $ git log -1 | head -1
    commit 8bad3f4
    $ qmake pgmodeler.pro
    $ make
    cd libutil/ && make -f Makefile
    make[1]: Entering directory /pro/3gl/PgModeler-git/libutil' rm -f libutil.so.1.0.0 libutil.so libutil.so.1 libutil.so.1.0 g++ -Wl,-O1 -shared -Wl,-soname,libutil.so.1 -o libutil.so.1.0.0 obj/excecao.o -L/usr/lib /usr/local/pgsql/lib/libpq.so -lxml2 -lQt3Support -L/usr/lib -lQtSql -L/usr/X11R6/lib -lQtNetwork -lQtUiTools -lQtXml -lQtGui -lQtCore -lpthread g++: error: /usr/local/pgsql/lib/libpq.so: No such file or directory make[1]: *** [../build/lib/libutil.so.1.0.0] Error 1 make[1]: Leaving directory/pro/3gl/PgModeler-git/libutil’
    make: *** [sub-libutil-make_default-ordered] Error 2
    $ locate libpq.so
    /usr/lib/libpq.so
    /usr/lib/libpq.so.5
    /usr/lib/libpq.so.5.4
    $

    Automatic suffix isn’t remembered

    The ‘Automatic suffix’ option for table-table relationships isn’t remembered.

    Steps to reproduce:

    1. Create table-table relationship and uncheck the ‘automatic suffix’ option.
    2. Save project and restart application.
    3. Edit the created relationship.

    ==> The option is now checked.

    The problem seems to be that true is always saved ’cause when I edit my dbm file manually, replacing all auto-suffix=»true» with auto-suffix=»false», it works just fine.

    question: how to activate the rever engeneering in pgmodeler

    I see on github that you have a revers eng plugin to do things like with tool like MySQL workbench
    But I do not see how to install and activate it.

    could you please help?

    Compiling error on Slackware

    I am getting this error during compiling :
    src/formprincipal.cpp:918: error: ‘PrintCurrentPage’ is not a member of ‘QAbstractPrintDialog’

    problem compilng in RH EL 6.2

    Hello,

    when I try to compile the project on my RH server (64bits) I have the following issue:

    [[email protected] pgmodeler-pgmodeler-8bad3f4]# /opt/QtSDK/Desktop/Qt/4.8.1/gcc/bin/qmake pgmodeler.pro
    [[email protected] pgmodeler-pgmodeler-8bad3f4]# make
    cd libutil/ && make -f Makefile
    make[1]: Entering directory `/home/alanis/Downloads/pgmodeler-pgmodeler-8bad3f4/libutil’
    g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector —param=ssp-buffer-size=4 -m64 -mtune=generic -fno-strict-aliasing -fPIC -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREAD_SUPPORT -I/usr/lib64/qt-3.3/mkspecs/default -I. -I. -I/usr/local/pgsql/include -I/usr/include -I/opt/QtSDK/Desktop/Qt/4.8.1/gcc/mkspecs/linux-g++-64 -I/opt/QtSDK/Desktop/Qt/4.8.1/gcc/include -I/usr/include/libxml2 -Isrc -I../libconexbd/src -I../libparsers/src -I../libpgmodeler/src -I../libobjrenderer/src -I../libpgmodeler_ui/src -I/opt/QtSDK/Desktop/Qt/4.8.1/gcc/include -o obj/excecao.o src/excecao.cpp
    In file included from src/excecao.cpp:1:
    src/excecao.h:26:19: error: QObject: No such file or directory
    src/excecao.h:28:19: error: QString: No such file or directory
    In file included from src/excecao.cpp:1:
    src/excecao.h:247: error: ‘QString’ does not name a type
    src/excecao.h:253: error: ‘QString’ does not name a type
    src/excecao.h:270: error: ISO C++ forbids declaration of ‘QString’ with no type
    src/excecao.h:270: error: expected ‘,’ or ‘…’ before ‘&’ token
    In file included from src/excecao.cpp:1:

    I’m using latest QT:

    pgmodeler-pgmodeler-8bad3f4]# env | grep QT
    QTDIR=/opt/QtSDK/Desktop/Qt/4.8.1/gcc
    QTINC=/opt/QtSDK/Desktop/Qt/4.8.1/gcc/include
    QTLIB=/opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib

    tested with the qt4 installed by default on my RH but same issue and not able to download the pre compiled version :-(

    Improve the method DatabaseModel::loadModel()

    Improve the method DatabaseModel::loadModel() in such way that it can resolve dependencies of objects in a simple way than the current one.

    Table removal issue

    Removing a table results in the removal of that table plus the table that happens to follow in the xml file.

    Erro no caminho do diretorio de plugins ao iniciar

    No kubuntu 12.04, tive que fazer uma pequena alteracao no arquivo pgmodeler.pro para compilar (v0.3.1):

    Estou usando Postgresql 9.1 dos repositorios padroes do Ubuntu.

    $ diff pgmodeler.pro pgmodeler-modificado.pro 
    7a8
    >                  /usr/include/postgresql 
    11c12
    <  GLOBAL_LIBS =  /usr/local/pgsql/lib/libpq.so 
    
    ---
    >  GLOBAL_LIBS =  /usr/lib/libpq.so 
    

    Quando vou abrir o programa, da um erro ao carregar os plugins:

    Um ou mais plugins não foram ativados devido a erros durante o processo de carregamento!  
    Verifique a pilha de exceções para mais detalhes.
    

    Nos detalhes aparece que nao foi possivel carregar o plugin dummyplugin apartir da biblioteca /home/moi/Downloads/pgmodeler/plugins/dummyplugin/libdummyplugin.so, e tem razao, o arquivo libdummyplugin.so está no diretorio build (/home/moi/Downloads/pgmodeler/build/plugins/dummyplugin/libdummyplugin.so).

    pgModeler crashing after activate the print dialog

    After activate the print dialog the software close due to an segmentation fault.

    ENUMs

    Hello.
    When create an ENUM type with non-english members (cyrillic in my case), pgModeler do not allow do this with error «Assignment of invalid name to an object!». But originally i will do this in psql with no problems.

    Invalid start script

    --- start-pgmodeler.sh.org      2012-09-28 08:58:56.412873544 +0200
    +++ start-pgmodeler.sh  2012-09-28 08:59:03.563872928 +0200
    @@ -1,4 +1,4 @@
    -#/bin/bash
    +#!/bin/bash
     export PGMODELER_ROOT="`pwd`/build"
     export PGMODELER_CONF_DIR=$PGMODELER_ROOT/conf
     export PGMODELER_SCHEMAS_DIR=$PGMODELER_ROOT/schemas
    

    Comment on a column generates an error

    Create a new table
    Add a column and set a comment. The comment has to be set before you click on Apply for the first time.

    Applying makes the following error appears: «The object ‘id’ (Column) has inconsistent configuration (invalid SQL/XML definition)!»

    Erase the comment, and apply, it works.

    Now edit the column you just added, table is not yet created, add a comment, click on Apply, the software freezes, and you have to force quit.

    Version: 0.3.4 and 0.4.0

    src/ui_confconexoeswidget.h: In member function ‘void Ui_ConfConexoesWidget::retranslateUi(QWidget*)’:

    Environment:

    OS: Debian Squeeze

    GCC

    gcc -v
    Using built-in specs.
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
    Thread model: posix
    gcc version 4.4.5 (Debian 4.4.5-8) 
    

    Error

    I ran make it’s started compiling, then a minute later:

    ...
    /usr/bin/uic-qt4 ui/confgeralwidget.ui -o src/ui_confgeralwidget.h
    /usr/bin/uic-qt4 ui/confaparenciawidget.ui -o src/ui_confaparenciawidget.h
    /usr/bin/uic-qt4 ui/confconexoeswidget.ui -o src/ui_confconexoeswidget.h
    /usr/bin/uic-qt4 ui/visaogeralwidget.ui -o src/ui_visaogeralwidget.h
    /usr/bin/uic-qt4 ui/formrestauracaomodelo.ui -o src/ui_formrestauracaomodelo.h
    g++ -c -pipe -O2 -I/usr/include/libxml2 -I/usr/include/postgresql -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_QT3SUPPORT_LIB -DQT3_SUPPORT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/Qt3Support -I/usr/include/qt4 -I../libutil/src -I../libconexbd/src -I../libparsers/src -I../libpgmodeler/src -I../libobjrenderer/src -Isrc -I/usr/X11R6/include -Imoc -Isrc -o obj/formprincipal.o src/formprincipal.cpp
    In file included from src/confconexoeswidget.h:24,
                     from src/formconfiguracao.h:27,
                     from src/formprincipal.cpp:32:
    src/ui_confconexoeswidget.h: In member function ‘void Ui_ConfConexoesWidget::retranslateUi(QWidget*)’:
    src/ui_confconexoeswidget.h:460: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:463: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:466: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:469: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:484: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:487: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:490: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/ui_confconexoeswidget.h:493: error: ‘class QLineEdit’ has no member named ‘setPlaceholderText’
    src/formprincipal.cpp: In member function ‘void FormPrincipal::imprimirModelo()’:
    src/formprincipal.cpp:1028: error: ‘PrintCurrentPage’ is not a member of ‘QAbstractPrintDialog’
    make[1]: *** [obj/formprincipal.o] Error 1
    make[1]: Leaving directory `/home/spotapov/downloads/pgmodeler-pgmodeler-cdc7fdc/libpgmodeler_ui'
    make: *** [sub-libpgmodeler_ui-make_default-ordered] Error 2
    

    crashed or error occurred when creating or modifying table-table relationship or dealing with foreign keys

    Under ubuntu 32bits, I came into crash several times when creating or modifying table-table relationship. Sometimes it prompted error message. But it is in Portuguese, and I didn’t know what happened. Sometimes it crashed. And I couldn’t reopen the project file which I edited the last time.

    I create foreign keys by adding a constraint of a column. But
    it didn’t shown in the graph. By creating table-table relationship, the column name could not be modified. I didn’t like the name generated by pgmodeler. Most of the time when I was dealing with foreign keys or relationships, it crashed.

    Double click on an element of a selector does not work

    Create a table
    Use the Selector for Schema
    Choose public and double click on it to set the value in the field

    The selector window is closed but the Schema field is empty

    This problem occurs for each selector on version 0.3.4 and 0.4.0

    Support for geometric types

    Hello guys, first of all congratulations on the superb job you all have been doing creating this tool. It looks amazing and it’s working quite well.

    Congratulations!

    I’m mainly a GIS user, so this tool is a invaluable resource to construct data models, but this lacks the support for GEOMETRY and GEOGRAPHY types, added by PostGIS extension.

    This is not a bug, just a feature request :D.

    Thanks again for the great work.

    Translate (refactor) code / ui to English.

    In order to gather more contributors I’ want to translate the pgModeler code/ui to English while the code don’t gets more bigger. It will not be an easy task but for the better relationship with other developers (from other countries) who has the intention to collaborate with code modifications this change needs to be made!

    The problem is: I don’t have sufficient time to dedicate to this task. Need help! So I decided to join some interested persons in one workgroup to refactor the source!

    Anybody wants to help too?

    Error when saving / loading timestampwith time zone

    You save timestamp with time zone in .dbm as

    but XML DTD has (basetype.dtd)

    So, you should save

    Thx for your software.
    jp delabre.

    Column Comment XML Parse Error

    Windows 7 64-bit Professional.

    If a user adds a comment for a column, upon reopening the file pgmodeler cannot parse the file with error:

    [6] srcformprincipal.cpp (1115)
    void FormPrincipal::carregarModelo()
    [ERR_PARSERS_ARQMODELOINV] Could not load file C:/Users/Austin/Google Drive/testDB.dbm. The same appears to be inconsistent or one of its dependencies (DTD files) has errors or is missing!

    [5] srcformprincipal.cpp (608)
    void FormPrincipal::adicionarNovoModelo(const QString&)
    [ERR_PARSERS_ARQMODELOINV] Could not load file C:/Users/Austin/Google Drive/testDB.dbm. The same appears to be inconsistent or one of its dependencies (DTD files) has errors or is missing!

    [4] srcmodelobd.cpp (2851)
    void ModeloBD::carregarModelo(const QString&)
    [ERR_PARSERS_ARQMODELOINV] Could not load file C:/Users/Austin/Google Drive/testDB.dbm. The same appears to be inconsistent or one of its dependencies (DTD files) has errors or is missing!

    [3] srcparserxml.cpp (111)
    static void ParserXML::carregarBufferXML(const QString&)
    [ERR_PARSERS_LIBXMLERR] Error while interpreting XML buffer at line 0 column 0.
    Message generated by the parser: ‘Element column content does not follow the DTD, expecting (type)?, got (type comment) ‘.

    [2] srcparserxml.cpp (176)
    static void ParserXML::interpretarBuffer()
    [ERR_PARSERS_LIBXMLERR] Error while interpreting XML buffer at line 0 column 0.
    Message generated by the parser: ‘Element column content does not follow the DTD, expecting (type)?, got (type comment) ‘.

    [1] srcparserxml.cpp (80)
    static void ParserXML::carregarArquivoXML(const QString&)
    [ERR_PARSERS_LIBXMLERR] Error while interpreting XML buffer at line 0 column 0.
    Message generated by the parser: ‘Element column content does not follow the DTD, expecting (type)?, got (type comment) ‘.

    [0] srcmodelowidget.cpp (846)
    void ModeloWidget::carregarModelo(const QString&)
    [ERR_PARSERS_ARQMODELOINV] Could not load file C:/Users/Austin/Google Drive/testDB.dbm. The same appears to be inconsistent or one of its dependencies (DTD files) has errors or is missing!

    It appears that in the column DTD there is no element for for comment, only an element for type:

    https://github.com/pgmodeler/pgmodeler/blob/master/schemas/xml/dtd/column.dtd

    Thus when a user reopens the file it is unable to be parsed and the user must remove the comments by hand.

    Please allow download of binaries via «Downloads»

    It would be far easier for me than modifying my environment to be able to compile and run pgModeler

    pgModeler trava quando se tenta relacionar duas tabelas onde uma possui gatilho/indice especial

    pgModeler trava quando se tenta relacionar duas tabelas onde uma delas possui gatilho/indice especial (o qual referencia uma coluna incluída por relacionamento). O mesmo pode ser reproduzido criando um relacionamento 1-n da tabela «tabela_B_4z» para a tabela «tabela_B_4c».

    pgModeler don’t switch to English automatically on some systems/language combination

    At least it’s in Portuguese by default right after I compiled it from source.

    I’m running ubuntu with locale:

    ➜ ~ locale
    LANG=en_US.UTF-8
    LANGUAGE=en_US:en
    LC_CTYPE=en_US.UTF-8
    LC_NUMERIC=»en_US.UTF-8″
    LC_TIME=»en_US.UTF-8″
    LC_COLLATE=»en_US.UTF-8″
    LC_MONETARY=»en_US.UTF-8″
    LC_MESSAGES=»en_US.UTF-8″
    LC_PAPER=»en_US.UTF-8″
    LC_NAME=»en_US.UTF-8″
    LC_ADDRESS=»en_US.UTF-8″
    LC_TELEPHONE=»en_US.UTF-8″
    LC_MEASUREMENT=»en_US.UTF-8″
    LC_IDENTIFICATION=»en_US.UTF-8″
    LC_ALL=

    Next release?

    When will the next version be released?

    Broken compilation process on MacOSX

    pgModeler won’t compile on OSX Montain Lion. The problem seems to be with the current stable release of Qt framework. Waiting release of Qt5 to make new tests. ** NOT TESTED ON OLDER OSX VERSIONS, HELP WANTED! **

    Default value for columns is not remembered (incl. patch)

    The default value for columns is not remembered after load.

    Steps to reproduce (I reproduced this with both master branch (v0.3.4) and ‘code-refactoring’ branch):

    • create a table
    • add a column with a default value
    • save the project, restart, load the project
    • the column does not have the default value anymore

    I analyzed the generated xml file and the code and it seems there’s an inconsistency between code and xml. In code it is used AtributosParsers::VALOR_PADRAO which is equal to «default-value» while in the xml file the attribute is «default».

    A possible fix is:

    diff --git a/schemas/xml/column.sch b/schemas/xml/column.sch
    index a240ec3..8fd20c4 100644
    --- a/schemas/xml/column.sch
    +++ b/schemas/xml/column.sch
    @@ -14,7 +14,7 @@ $tb [<column name=] "@{name}"
      %end
    
      %if @{default-value} %then
    -  [ default=] "@{default-value}"
    +  [ default-value=] "@{default-value}"
      %end
    
      %if @{protected} %then 
    diff --git a/schemas/xml/dtd/column.dtd b/schemas/xml/dtd/column.dtd
    index 15c6b98..d7276a2 100644
    --- a/schemas/xml/dtd/column.dtd
    +++ b/schemas/xml/dtd/column.dtd
    @@ -9,5 +9,5 @@
     <!ELEMENT column (type?)>
     <!ATTLIST column name CDATA #REQUIRED>
     <!ATTLIST column not-null (true | false) "false">
    -<!ATTLIST column default CDATA #IMPLIED>
    -<!ATTLIST column protected (false|true) "false">
     No newline at end of file
    +<!ATTLIST column default-value CDATA #IMPLIED>
    +<!ATTLIST column protected (false|true) "false">
    

    Implement commands «Bring to Front» and «Send to Back» for graphical objects

    Implement commands «Bring to Front» and «Send to Back» for graphical objects giving to user the ability to change the object stack (viewing order).

    per-user config

    atm it’s not possible to install it system-wide w/o copying the conf directory first.
    pgmodeler should support user-overwrites for a r/o system configuration.

    pgModeler crashes when removing an primary-key of a table

    pgModeler crashes when removing an primary-key of a table which has relationship with other table. This bug occurs apparently with relatioships of type 1-1 but the others must be checked!

    Change class constants to public enumarations.

    In order to provide validation class constants like Tipo::FUNC_??? and others need to be changed to enumerations inside the classes.

    Invalid concat => missing semi-colon

    diff --git a/main/main.pro b/main/main.pro
    index 2ccd2cc..0870a5b 100644
    --- a/main/main.pro
    +++ b/main/main.pro
    @@ -10,7 +10,8 @@ OBJECTS_DIR = obj
     DESTDIR = ../build
    
     unix {
    - QMAKE_POST_LINK+= "cp -r ../schemas/ $$DESTDIR; 
    + QMAKE_POST_LINK+= "; 
    +                   cp -r ../schemas/ $$DESTDIR; 
                         cp -r ../conf/ $$DESTDIR; 
                         cp -r ../lang/ $$DESTDIR; 
                         cp -r ../samples $$DESTDIR; 
    

    Rename file extension to .pgm

    Current file extension seems to be .pgmodel. Can we get this changed to .pgm per convention?

    Validate views and relationships that references table columns that were added by relationship

    Segmention fault can occur if visions and relationships that reference columns of tables which were included by relationship aren’t validate. Check method ModeloBD :: obterXMLObjetosEspeciais ()

    Invalid XML file if the project contains elements with ‘truncate’ privileges.

    Invalid XML file if the project contains elements with ‘truncate’ privileges.

    Steps to reproduce:

    • create a role
    • create a table
    • change table permissions — add ‘truncate’ privileges
    • save the project, close, load the project
    • pgmodoler will refuse to load the project, saying that the XML is not valid

    The problem is caused by a typo in the grand.dtd file (‘trucate’ instead of ‘truncate’)

    Below you can find the fix:

    diff --git a/schemas/xml/dtd/grant.dtd b/schemas/xml/dtd/grant.dtd
    index 3ac521c..a4ef255 100644
    --- a/schemas/xml/dtd/grant.dtd
    +++ b/schemas/xml/dtd/grant.dtd
    @@ -10,7 +10,7 @@
     <!ATTLIST privileges select (false|true|grant-op) "false">
     <!ATTLIST privileges insert (false|true|grant-op) "false">
     <!ATTLIST privileges update (false|true|grant-op) "false">
    -<!ATTLIST privileges trucate (false|true|grant-op) "false">
    +<!ATTLIST privileges truncate (false|true|grant-op) "false">
     <!ATTLIST privileges references (false|true|grant-op) "false">
     <!ATTLIST privileges trigger (false|true|grant-op) "false">
     <!ATTLIST privileges create (false|true|grant-op) "false">
    

    the language could be default in english?

    it would be more friendly for people for all of world.

    I can’t ready the language.

    But really it is a very good application.

    make: *** No rule to make target `res/resources.qrc’, needed by `qrc_resources.cpp’. Stop.

    make: *** No rule to make target res/resources.qrc', needed byqrc_resources.cpp’. Stop.

    Create menu to change language

    A menu should set the enviroment var to define pgmodeler language.

    Recommend Projects

    • React photo

      React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo

      Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo

      Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo

      TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo

      Django

      The Web framework for perfectionists with deadlines.

    • Laravel photo

      Laravel

      A PHP framework for web artisans

    • D3 photo

      D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Visualization

      Some thing interesting about visualization, use data art

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo

      Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo

      Microsoft

      Open source projects and samples from Microsoft.

    • Google photo

      Google

      Google ❤️ Open Source for everyone.

    • Alibaba photo

      Alibaba

      Alibaba Open Source for everyone

    • D3 photo

      D3

      Data-Driven Documents codes.

    • Tencent photo

      Tencent

      China tencent open source team.

    Из песочницы, SQL, Анализ и проектирование систем, PostgreSQL, Визуализация данных, UML Design


    Рекомендация: подборка платных и бесплатных курсов создания сайтов — https://katalog-kursov.ru/

    Однажды в студёную зимнюю… день понадобился мне бесплатный инструмент для проектирования баз данных. Такой, который бы ещё и скрипты умел генерировать. Очень нравится Visual Paradigm, но стоит он, конечно, как самолёт. Поэтому, вооружившись гуглом и советами знакомых разработчиков, отправился я на поиски.

    В итоге набрёл на весьма неплохой инструмент pgModeler. Единственное, не очень понравилось, что sql-скрипты он умеет генерировать только для PostgreSQL. Но т.к. на тот момент (да и сейчас, а то и потом) использовалась эта база данных, то этого инструмента было вполне достаточно.

    Умеет он, действительно, много. И таблицы рисовать, и чеки на поля навешивать, и даже функции позволяет писать (которые будут включены в итоговый скрипт при генерации). Подробнее о возможностях можно почитать на сайте проекта.

    pgModeler — это Open Source проект, но, чтобы получить бинарники, необходимо заплатить денюжку. Бесплатно доступны только исходники проекта… Которые надо собрать… Используя Qt…

    С Qt я сталкивался лишь раз в жизни — на лабах в универе, — да и было это давно и неправда. Видимо, поэтому у меня возникли некоторые сложности при сборке. Ну либо потому, что годных статей нашёл не так много (на самом деле, на тот момент нашёл лишь одну), а документация по сборке весьма скудная.

    Что ж, переходим к самой сборке.

    Окружение

    Система: Windows 7 x64.
    Версия pgModeler: 0.9.2-alpha.
    Версия PostgreSQL: 10.4.
    Qt: Qt 5.6.3 for Windows 32-bit (MinGW 4.9.2).

    Сборка

    Приведённая инструкция была написана в соответствии с указанным выше окружением.

    1. Скачать исходники.
    2. Скачать PostgreSQL.
    3. Установить в C:PostgreSQL.
      ВАЖНО!
      Установить можно в любую директорию, но тогда придётся поменять путь в файле сборки. Также в пути не должны присутствовать пробелы, иначе сборщик будет пытаться разбить этот путь на несколько.
    4. Скачать Qt.
      ВАЖНО!
      Устанавливать нужно 32-х битную версию с MinGW даже на 64-х разрядную систему, т.к. в природе существуют только 32-х битные версии Qt и MinGW, которые умеют работать друг с другом.
    5. Установить Qt в C:QtQt5.6.3.
    6. Добавить в переменную среды Path пути до Qt и MinGW.
      1. Перейти в КомпьютерСвойства системыДополнительные параметры системыПеременные среды…Системные переменныеPathИзменить.
      2. Добавить для:
        qmake — C:QtQt5.6.35.6.3mingw49_32bin.
        mingw32-make — C:QtQt5.6.3Toolsmingw492_32bin.

    7. В исходниках в файле pgmodeler.pri при необходимости изменить пути.
    8. Создать папку C:pgModeler для скомпилированного приложения.
    9. Открыть cmd.
    10. Перейти в папку с исходниками с помощью cd.
    11. Для настройки конфигурационных файлов необходимо выполнить
      qmake PREFIX+=C:/pgModeler -r -spec win32-g++ CONFIG+=release pgmodeler.pro
    12. Для компиляции проекта выполнить
      mingw32-make -j5
    13. Чтобы переместить скомпилированные файлы в C:pgModeler, выполнить
      mingw32-make install
    14. Перейти в папку с приложением
      cd C:pgModeler
    15. Скопировать файлы Qt в папку приложения
      windeployqt pgmodeler.exe
    16. Скопировать следующие DLL в папку приложения:
      • C:PostgreSQL10binlibeay32.dll
      • C:PostgreSQL10binlibiconv-2.dll
      • C:PostgreSQL10binlibintl-8.dll
      • C:PostgreSQL10binlibpq.dll
      • C:PostgreSQL10binlibxml2.dll
      • C:PostgreSQL10binssleay32.dll

    17. Для запуска без Qt в системе скопировать следующие DLL в папку с приложением:
      • C:QtQt5.6.35.6.3mingw49_32binQt5Network.dll
      • C:QtQt5.6.35.6.3mingw49_32binQt5PrintSupport.dll

    Заключение

    Вот, в общем-то, и всё. Надеюсь, эта статья будет кому-то полезной.


    Пытался понять, как собрать данное приложение на основе статьи. Но инструкция немного косячная, местами непонятная и есть лишние действия, например, установка стороннего MinGW (к слову говоря, у меня с Qt 5.6.3 не заработал, из-за чего пришлось отойти от сей статьи и разобраться что вообще и как) или скачивание libxml2, которая есть в PostgreSQL.

    Официальная, «очень полезная», «понятная» и весьма «полная» инструкция по сборке данного приложения находится тут. Правда, именно в ней пишут про совместимость Qt и MinGW.

    Понравилась статья? Поделить с друзьями:
  • Скачать pgadmin 4 для windows 10 64 на русском
  • Скачать pes 2010 для windows 7
  • Скачать platform update for windows 7 sp1
  • Скачать pes 2009 для windows 7
  • Скачать planner5d бесплатно на русском на windows