Skip to content

PostgreSQL Database Modeler, or simply, pgModeler is an open source tool designed to modeling databases that merges classical concepts of entity-relationship diagrams with specific features that only PostgreSQL implements. Support this project by donate on project's official web site link:

License

Fisiu/pgmodeler

 
 

Repository files navigation

Introduction

PostgreSQL Database Modeler, or simply, pgModeler is an open source tool for modeling databases that merges the classical concepts of 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 (Version 9.x).

Please, let me know how the pgModeler is working on your system! Help to improve this project, give your feedback about the software or report any bug at Issues page. Additionaly, follow the pgModeler profile on Facebook or Twitter and be up-to-date with new features, fixes and releases.

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.

Donate to pgModeler

Making a software is no easy task! With pgModeler was no different. Much effort, coffee, chocolate, time and knowledge has been devoted to the project so that a usable and constantly improved product is delivered to the community free of charge.

Despite all many feature contribution all open source project needs sometimes a financial incentive, this way the developer realizes that his product is even more valuable.

If you like the project and think it deserves a contribution please donate any amount (via PayPal) on project's official site. The pgModeler's author will be immensely grateful for your support and will continue to improve the tool until its maximum pontential.

Developers and Reviewers wanted!

pgModeler grow bigger and reached a state that its lonely developer cannot handle all the modification and new features requests as well to create a user's manual. So if you know C++ and Qt framework programming and wants to contribute with coding or an user's manual let me know! I'll be grateful for any help to the project!

Compiling/Installation

For details about installation process from source code visit the Installation section on Wiki. If you don't want to compile pgModeler there are binaries available for download at official site.

MacOSX Notes

  • Due to particularities on executing bundles on MacOSX 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.
  • To use pgmodeler-cli command you must call it by executing the following command inside the "pgmodeler.app/Contents/MacOS" path: ./startapp pgmodeler-cli [PARAMS]

Change Log

v0.7.0

Codename: Brave Mastodon
Release date: February 25, 2014

  • [New] Addded a catalog attribute "hide-postgres-db" in order to avoid listing "postgres" maintainance DB on import operations.
  • [New] Added options to hide system/extension objects on SQL tool improving the object listing performance.
  • [New] Added support to custom compilation output directory through qmake variables BINDIR, LIBDIR and RESDIR.
  • [New] Added support to deferrable unique, exclude and primary key constraints.
  • [New] Added support to custom colors on tables and views through tag objects.
  • [New] Added support to export models to png image page by page.
  • [New] Canvas can now be moved using Control + Arrow keys. If the shift is pressed the movement factor is increased.
  • [New] Introduced the SQL tool that permits the execution of arbitrary SQL commands direclty on a server.
  • [New] Added methods getType, getTypeId to BaseType and getSQLTypeName to PgSQLType as an alternative to call operators ~, ! and *.
  • [New] Added a commented DROP command at start of each object definition (CREATE or ALTER TABLE ADD)
  • [New] Added a "Code Preview" tab on permissions dialog.
  • [New] Enabled SQL code visualization for FK relationships.
  • [New] Added a build number on about dialog. This number is the compilation date in format yyyymmdd.
  • [New] Added support for materialized and recursive views (PostgreSQL 9.3 feature).
  • [New] Added pgModeler version information on generated sql scripts as well .dbm files for debugging purpose.
  • [New] Added support to custom delete/update actions for relationship generated foreign keys.
  • [New] Added support to move the canvas by positioning the mouse over corners.
  • [New] Added a configuration parameter to control font style for any source code highlight field.
  • [New] Added additional PostGiS types: geomval, addbandarg, rastbandarg, raster, reclassarg, unionarg, TopoGeometry, getfaceedges_returntype, validatetopology_returntype.
  • [Change] Added support to on-demand updates on sql tool object's tree.
  • [Change] Improved the tab navigation experience on editing forms.
  • [Change] Minor change on SQL tool to ommit binary data values.
  • [Change] Dropped the navigation through object using Alt + <left|right> due to the difficulty to understand the order in which objects are highlighted.
  • [Change] Minor change when generate .stacktrace file for crash handler to include pgModeler build number.
  • [Change] Minor adjustments on DatabaseImportForm's import execution progress.
  • [Change] Minor enhancements on operation list when removing last operations.
  • [Change] Minor enhancements on table and relationship dialogs on error control flow.
  • [Change] Changed Z-value for relationship labels in order to avoid that name labels don't overlaps the cardinality labels.
  • [Change] Removed the translation installing from within plugin loading method at PluginsConfigWidget.
  • [Change] The Application class constructor now loads at once all translation files available for the current language including language file for plugins.
  • [Change] Minor changes on deploy scripts on all platforms. The parameter '-with-build-num' was introduced in order to generate a package with build number.
  • [Change] Relationship dialog enhanced. Now participant tables are described in what role they make part.
  • [Change] Minor improvement on model export process.
  • [Change] Minor improvement on model validation widget.
  • [Change] Minor improvement on crash handler report generation message. Full path to crash file is now shown.
  • [Change] Improved the message displayed when user try to save an invalidated model.
  • [Change] Minor adjustment on model export dialog size.
  • [Change] Minor improvement on model overview widget.
  • [Change] Minor adjustments on window title buttons for model export and database import forms.
  • [Change] Improvement on connection config form. pgModeler now ask to save/update unsaved connection if the user forgot to.
  • [Change] Minor update sql syntax highlighting configuration file.
  • [Fix] Fixed bug that was permitting paste already formatted text (html) on source code input fields.
  • [Fix] Fix broken range type generation.
  • [Fix] The DELETE privilege is now correclty saved on model.
  • [Fix] Fixed drop object command on SQL tool.
  • [Fix] Fixed bug that was crashing pgModeler when a error was raised on view edit form.
  • [Fix] Fixed a bug that was crashing the application when deleting relationship attributes or constraints.
  • [Fix] Fixed bug related to the range selection weird behavior when finishing creating a object.
  • [Fix] Minor fix on OperationList undo/redo methods to update types names on tables that references a modified type.
  • [Fix] Minor fix on View assignment operator to correctly rename the type associated with "this" object.
  • [Fix] Minor fix on DatabaseModel to correctly return the references to a view type.
  • [Fix] Fixed bug that was causing indexes/triggers that references columns added by relationship have the sql code generated twice.
  • [Fix] Minor fix on ResultSet class to identify bytea columns.
  • [Fix] Minor fix on CLI menu to add new export modes.
  • [Fix] Fixed a crash dealing with duplicated columns on a table.
  • [Fix] Fixed bug when deleting tables and fk relationships together.
  • [Fix] Fix bug related to geometry type.
  • [Fix] Minor fix on logical expressions evaluation on SchemaParser.
  • [Fix] Minor fix on model export when showing the name of objects being exported.
  • [Fix] Minor fix on list/view advanced objects of a relationship.
  • [Fix] Minor fix on form resizing when showing the protected object alert.
  • [Fix] Fixed a minor bug that was crashing pgModeler when visualizing many-to-many relationships.
  • [Fix] Fixed some warnings triggered by clang compiler.
  • [Fix] Fixed a crash when loading plugins on MacOSX.
  • [Fix] Fixed the issue related to import roles from database. pgModeler will not query pg_shadow anymore since this view is a very restricted object. Now role passwords will be imported as ***** (according to docs).
  • [Fix] Fixed the object name validation. pgModeler now accepts spaces within names.
  • [Fix] Fixed the function editing form resizing.
  • [Fix] Fixed a bug that was not loading "sql disabled" state for relationships.
  • [Fix] Fixed incorrect behavior of "Zoom In" action on MacOSX.
  • [Fix] Trying to fix the infinite loop of the Validation confirm dialog on Windows (more tests needed).

The complete change log can be found on CHANGELOG.md file.

Older Releases/Code

The older code and releases of pgModeler can be found at Sourceforge.net

About

PostgreSQL Database Modeler, or simply, pgModeler is an open source tool designed to modeling databases that merges classical concepts of entity-relationship diagrams with specific features that only PostgreSQL implements. Support this project by donate on project's official web site link:

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 73.5%
  • TypeScript 25.5%
  • Other 1.0%