|
I don't know the historical decision within mifos per-se; but one thing for sure is that if one relies strictly on hibernate's automatic DDL, one cannot reliably (or even easily) upgrade / downgrade schema. So I'd say for any production usage, using hibernate automatic DDL is a non-starter.
Hibernate's automatic DDL does have some heuristics to try to do upgrade/downgrade but it's far from perfect. To be fair (to hibernate) , it is not a problem that is easily solvable without explicit upgrade/downgrade instruction either.
As one example, hypothetically, if hibernate auomatic DDL generation is used,
1) as of svn 12345, OfficeBO has a attribute with typo called namme.
2) the typo was discovered later on; the fix is checked in as svn 12350 by fixing the hbm mapping file.
3) now when the svn 12350 binary is run against a DB with the schema as of 12345. Hibernate automatic DDL can figure out that the DB schema is missing a column name. However, with that information alone, the automatic DDL has no reliable way to determine whether it should rename the existing column (namme), or add a new column.
- sam
On Dec 26, 2007 12:11 AM, Dion Dodgen < dion.dodgen-V6tgI1fQ41+tG0bUXCXiUA@public.gmane.org> wrote:
Hi Adam,
I also wondered about that, not sure on the origins but I would guess Mifos started off using JDBC with native sql. Also Hibernate 2 did not have much tool support. Not sure?
I have discussed this type of issue before on another project where
the developers said they wanted full control over the schema modeling, normalization etc so did the ddl to domain object thing vs domain to schema thing.
Also another consideration is the tie into a specific O/R mapping tool
(and hibernate generates its own schema - which may not be as intuitive as a human relational design) not that these days its that relevant with all the reverse engineering options available.
Dion
On Dec 26, 2007 5:28 AM, Adam Monsen < haircut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > Hibernate can do DDL (create tables, foreign keys, indexes, etc.) for an
> entire database from .hbm.xml files, right? I suddenly became curious > why Mifos uses SQL (sql/latest-schema.sql and others) instead of letting > Hibernate do all the DDL. > > -- > Adam Monsen
> > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. >
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/> -------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
|