Compiere on Postgres/MySQL
Tim Griffin writes " Compiere (arguably the most comprehensive open source ERP/CRM solution) has recently taken an interesting approach to harnessing community support for adding database independence to their product (currently it requires Oracle). They are taking pledged donations to help get the ball
rolling on the project
Certainly there are many feature requests in OSS I'd gladly pledge towards. Is this feature pledging a sustainability model for opensource developers/companies? Other examples, such as
Blender3d which raised 100,000 EUR in 7 weeks, point in that direction. Perhaps in the future we may even see these pledge requests
linked within the GUI itself? "
I was discussing a similar problem with some musicians the other day: how to pay for creative work?
Our solution was sponsoring, in one way or another: support from wealthier individuals or firms, getting advertising and honorable mentions in return.
The basis was the way traditional musicians are paid in Africa, which is by singing the praises of whoever gives them money. Since such musicians (like griots) are also respected on who is who in the community, their voices are sometimes worth a lot.
In software, why not something along the lines of "such and such paid for this feature", an eternal mention of one's contribution to the project. It worked for Bach and Mozart, why not for OSS today?
Ceci n'est pas une signature
I'm taking a similar approach to employment independence. For only a few dollars a month, you could help me sit on the couch every day.
Life is the leading cause of death in America.
In an open source product, the diffs would be out in minutes to remove this crap, thankfully. With closed source, it takes a few days for the crack to appear :).
One CPU cycle wasted on digital restrictions management is ONE TOO MANY.
The claim was made this 'port' would have aviablity in Qt 4 of 2003.
t ml page:
No sign of that happening.
Some other data for the slashdot readers.
Other 'claims' from the http://www.compiere.org/technology/independence.h
"but you can get an invoice"
and
"As a proof of concept, ComPiere plans to provide a porting kit for one database to be selected yet."
Now I "donated" over $100 on this last year for a PostgreSQL port.
1) I have not gotten a invoice.
2) Phone calls to Mr. Janke have not been returned to answer the question 'what is the status of the port'
3) Now what I "donated money" for - a PostgreSQL port - may not be done, and instead a MySQL port may be done instead?
As you can guess, I'm "Happy" about the progress thus far.
On the mailing list some people have talked about a PostgreSQL fork of his code and Mr. Janke had made mention of some PostgreSQL work done 2 years ago, but to my knowledge, none of that code is 'out there' for the public to see.
At present, the development environment is Jbuilder...perhaps a seperate slashdotting can happen and convice them to move to Eclipse?
Nuts to this! Seriously! Why should we contribute to this?
It makes sense for them to do this port. They should have made it work on at least either Postgres/MySQL in the first place. It's their own fault, they have clearly dug their own hole and now they want us to give them money to buy a ladder to help them out of it.
If the program was coded well, it wouldn't be more than a few days work (they should just need to change a very small number of functions, the ones that act as an abstraction layer to the DB). If they haven't, that's their problem and they have a lot more than just backend portability to worry about.
In even reasonably complex projects I always use an abstraction layer so I have the option to change the DB at will. In fact, you might say I use two layers - one layer for the DB, and another layer in the form of the functions I call to get data (which call the DB layer), and I usually have a set of 'core' functions which are not called directly from any user facing elements but only from libraries which do the actual data retrieval.
I'd also add it acts as an excellent way of reducing the number of bugs - by forcing the use of abstracted interfaces I find the enforced simplicity of the interfaces cuts down on the bug rate (by breaking down the code in to easily maintainable and re-useable chunks with easy to test input and output).
So in this case I say:
Lack of abstraction == no cookie for you! Bad developer!
I didn't know what this was, so from their webpage:
What are ERP Software Solutions? ERP stands for Enterprise Resource Planning and is the software to support your entire business processes. ERP Software Solutions typically consists of modules such as Marketing and Sales, Field Service, Production, Inventory Control, Procurement, Distribution, Human Resources, Finance and Accounting.
What are CRM Software Solutions? CRM stands for Customer Relationship Management and is the software to support your business process to find, get and retain customers. CRM Software Solutions typically consist of modules such as Sales Force Automation, Call Management, Self Service.
PostgreSQL is more feature rich than MySQL. Whether or not it's more "advanced" depends on what you are using it for.
And no, I know MySQL has transactions through InnoDB, however MySQL doesn't have stored procedures, which also means no triggers. PostgreSQL not only has procedures but it has inheritance, overloading, and support for pl/PHP, pl/Perl, pl/Python and a host of other languages you can write stored procedures in.
Theres a bunch of differences between MySQL and PostgreSQL, neither of which make either one better overall. It's a matter of the application of each which determines if one is better.
..There's a-dooin's a-transpirin'
I think ERP + CRM applications are only interesting for large companies that have a lot of money - can anybody tell me why it's better for the community that these companies do not have to spend so much money?
Heck, the E in ERP stands for Enterprise, doesn't it? And "ressource planning" bascially stands for "how to spend your money the best way" - if these enterprises have so much money, why shouldn't they spend a bit on software? Please enlighten me, thanks.
Mr. Janke wrote this code originally as a Java based Oracle project back in the 1990's in Germany, and somehow he got to keep the code license. So it is very 'tied to Oracle'. And it wasn't built to be 'portable'.
:-(
The 'issue' is some form of 'stored procedures', but I've not the background in Oracle to do the work to de-Oracle it, or to know enuf to know what I'm looking at.
Porting the table structure is not the same as, oh, porting the actual program so that it reads and writes to PostgreSQL.
What exactly do you mean by giving us a database configuration file, and then saying you've ported compiere to postgresql? Where are the modified java files?
-Adam
Compiere has been hounded for a postgresql database port for a long time now.
They have had a committee to oversee it, they have had numerous people (of varying skill) offer to contribute, and they have had a stunning lack of progress.
Their opinion has not changed much, which is, "If you have the Enterprise needing such software, Oracle is nothing more than a drop in the bucket" Eventually, they complained that it would be a finiancial burden to make the port happen. That's when someone indicated a "donation" web page should be set up (as a compromise).
I see the donation webpage as nothing more than an attempt to keep the port from never happening, by addressing the one point of money (raised when it became obovious that many wanted the feature, but few would donate time or money)
But it requires Oracle. Huh. An Open source product that requires the purchase of a proprietary software product. Kinda defeats the purpose. No?
Personally though I don't understand why application developers use a database for anything other than storage. If all you are doing is simple inserts, selects, updates and deletes it should be very easy, if not trivial to make the application database independent.
Stored procs, triggers, etc, are evil as they spread your application logic all over the place and there are no standards for how they are implemented by different vendors. It's hard enough to find a relatively standard subset of SQL semantics.
-josh
I thought that the push behind open source was that the features that were technically best, and would be of the most benefit to the users were the ones that were added. That may not always be the case if the model of "fund-raising" is adopted, so that the wealthiest are able to control the feature-list of OSS. If you'll adopt a reasonably paranoid outlook then the implications should be obvious. Personally, this is a bit unsettling
Really? Have you tried setting up postgresql? The version in RH9 was just as easy to set up as mysql, so if that's a PITA, you're not going to believe what you need to do to get oracle to work ;)
I don't know if you have EVER use an enterprise applicaiton before. Even if it IS just select/inserts/deletes for basic GL/AP/AR applications you are talking about people, systems and components requiring gigs to terrabytes of data and hundreds if not THOUSANDS of concurrent users.
:)
MySQL can't handle flash back transactions, doesn't support load balancing, hot site, and paralell or clustered transactions. I need all of these to support an enterprise environment!
Sure compiere may be small, but it needs a powerfull database. It needs the features of an enterprise database oh which there isn't an open source solution to. I wouldn't dare want to recover a mysql or postgress 1.2 terrabyte erp system.
Oracle RDBMS is an amazing product. Overly capable and getting easier to use as the releases pile on. You pay for the mindset that you have a multi billion dollar company supporting you.
That brings me to the question of why use Compiere at all on anything but oracle and is there a demand for an ERP system that doesn't use a commercially supported system as NO vendor in there right mind would want to support a product they didn't develop or that didn't have its own superb support channels to begin with.
oh well. You have to remember that big business is alot different than hosting a small website or cddb database on your average linux pc
WHile MySQL has other strengths (most notably MySQL is strong where you do not WANT full ACID support, while PostgreSQL is strong where you do).
Triggers are very important for any business-critical database, as is the requirement that a database raise an exception when it cannot insert EXACTLY what you tell it to into the database.
For example, if you insert a number into MySQL that is too large for its data type, MySQL will truncate it (NOT good for accounting), while PostgreSQL will terminate the transaction and happily raise an exception! THis behavior is NOT ACID complient.
MySQL has some other strengths-- it provides a set of generic non-ACID compliant tools (such as HEAP tables) that enterprise databases cannot afford to offer.
LedgerSMB: Open source Accounting/ERP
you're not going to believe what you need to do to get oracle to work ;)
:-)
Bah, that's easy - I just email our DBA and ask her to do it
It's official. Most of you are morons.
1. Because it hasn't gotten anywhere near the airtime of MySQL/Postgres.
2. Because it is going away -- being merged into MySQL AB's product line as MaxDB.
http://www.sapdb.org/7.4/sapdb_mysql.htm
Learning HOW to think is more important than learning WHAT to think.
"Perhaps in the future we may even see these pledge requests linked within the GUI itself"
...err emailers will receive a log beach towel with their pledge of one hundred dollars... Okay now we bring you to your user interface.'
Great... just like public radio or television...
'We will bring you to your gui in just a moment, but first... please contribute to our effort... it is you the user that contributes the most to our efforts and if you think that this program is of value to you and you want to see it continuously improved... The next one hundred callers
repeat every 3 months.