Giter Site home page Giter Site logo

pgmodeler / pgmodeler Goto Github PK

View Code? Open in Web Editor NEW
2.9K 133.0 382.0 46.95 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.87% C++ 99.06% Shell 0.01% Batchfile 0.01% C 0.05%
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 X, Bluesky or Mastodon 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 17 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

Contributors

0xflotus avatar ams-tschoening avatar babs avatar bonanitech avatar bumanji avatar danubionogueira avatar duprej avatar elxreno avatar enjoy12e avatar fisiu avatar heisian avatar hubbitus avatar jedillama avatar jwdeitch avatar lazka avatar marco44 avatar maxzor avatar ndotb avatar nlap avatar perezmeyer avatar pinaraf avatar pslestang avatar rkhaotix avatar robregonm avatar rokkie avatar stevedorries avatar tnewman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pgmodeler's Issues

Compiling error on Slackware

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

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.

Table removal issue

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

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

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.

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">

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.

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

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; \

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

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.

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] src\formprincipal.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] src\formprincipal.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] src\modelobd.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] src\parserxml.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] src\parserxml.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] src\parserxml.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] src\modelowidget.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.

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.

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.

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/*
$

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
$

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

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

Table removal issue

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

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 ;

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

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

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">

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=

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.

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.

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.

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! **

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?

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:

[root@linux pgmodeler-pgmodeler-8bad3f4]# /opt/QtSDK/Desktop/Qt/4.8.1/gcc/bin/qmake pgmodeler.pro
[root@linux 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 :-(

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
$

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?

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.

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.

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

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

  • D3 photo D3

    Data-Driven Documents codes.