I've looked into porting to other DBMSs. I use Win32 only and PostgreSQL runs on Linux only? It is relatively easy to convert the compiere.sql file on the fly to both HSQL and MySQL, but there are other stuff that is not so easy (for instance doesn't MySQL support views (yet)), and HSQL doesn't supoort the [INNER | OUTER] JOIN clauses.
Is it interesting for others that Compiere is ported to MySQL? What about making the system even more DBMS independent? There are many ways to do it, and the way it is done now is good, but not very flexible when trying to support another DBMS.
At this point, there are a few issues running PostgreSQL on Windows (CygWin), but it seems that they are adressing these issues.
MySQL does not support triggers and would anyway require a license when running with Compiere.
Have you considered SAP DB - http://sapdb.org - or Firebird - http://firebird.sourceforge.net/ ? Both have Windows/Linux etc. ports, both have triggers, transactions (nested for SAP DB) etc. SAP DB even has an "Oracle compatibility" mode.
Firebird is very solid, excellent tools available, active development. SAP DB seems to have the edge when it comes to features.
My apologies, it seems both SAPDB and Firebird are already under discussion. Does Compiere make extensive use of PL/SQL? Of nested transactions?
Having worked with many dbms over the years and porting between dbms' , my suggestion is to use
an Object/Relational mapper to isolate the application from the database. This simplifies and allows you to localizes rdbms vendor differences to the mapping layer. Secondly, it has
been my experience that you really only want the
database to act as an object store and you want
to use as little of the dbms functionality as possible. I know it sounds odd, but you really want
to avoid using stored procedures as that tends to move business object behaviour into the rdbms.
I find that targeting rdbms such as mySql or MsAccess during initial development helps to
enforce this approach as they don't support stored procedures. Then porting to any other
database using the mapping layer becomes trivial.
How about Hibernate? Hibernate is an open source project that does O/R mapping and has transparent persistence of objects using Reflections.
Log in to post a comment.
Sign up for the SourceForge newsletter:
You seem to have CSS turned off.
Please don't fill out this field.