leonardosapiras / pgmodeler

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).

Home Page:http://pgmodeler.com.br

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Model File Changes

Several changes were introduced in pgModeler 0.5.0 mading some tag on model files created on 0.4.1_r1 incompatible with the new version. If you having problems during loading of older model files you can open them on a text editor and try the fixes below:

  • Remove io-cast attribute from <cast> tags.
  • Remove recheck attribute from <element> tags.
  • Remove values greater-op, less-op, sort-op or sort2-op from ref-type attribute from <operator> tags.
  • Remove sysidattribute from <role> tags.
  • Replace <parameter> tag by <typeattrib> on <usertype> tags.
  • Remove auto-suffix, src-suffix and dst-suffix from <relationship> tags.

After that you can try to reload your model. Probably a second problem can occurr: broken references between objects. As the model validation was introduced on pgModeler 0.5.0 the object references are not checked during loading time anymore. Instead the user needs to validate the model every time before saving it.

As a collateral effect loading older models can generate several errors like "Object A is referencing the object B which was not found in the model!" (Code: ERR_REF_OBJ_INEXISTS_MODEL). The fix to this is a little tricky: you have to change the creation order of the object A in relation of B, that means, B must be created before A. So, again, open the model on a text editor and move the XML portion of the B object to a position right before the A XML portion.

MacOSX Notes

  • The port to C++11 and Qt5 raised an undesirable side effect on splash screen that appears glitch on this system. This does not compromise the execution and will be fixed on future releases.
  • 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.
  • As on the other systems it's possible to run pgModeler from shell but using the following command: open pgmodeler.app --args [MODULE] [ARGS] where MODULE can be pgmodeler | pgmodeler-cli | crashhandler and ARGS are additional arguments passed to modules (e.g. CLI arguments)

Change Log

v0.5.1_r1

Codename: Lovely Duda
Estimated release date: June 14, 2013

  • [New] Added deployment scripts on all platforms to compile and pack pgModeler. Note: On Windows the script must run on GNU environment port like Cygwin or MingW.
  • [Fix] Splash screen corrected on MacOSX.
  • [Fix] Corrected a bug on relationship object that was crashing pgModeler when specifying column name pattern.
  • [Change] Minor improvements on syntax highlighter.

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 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).

http://pgmodeler.com.br

License:GNU General Public License v3.0