what is the issue with database changes?

Mads Kiilerich mads at kiilerich.com
Fri Mar 20 12:28:37 EDT 2015


I think Matt's response in this thread gives a good answer to "why not" 
and is a relevant challenge but doesn't give a "good" answer to "then 
how". It would be nice if the described ideal was feasible ... but I 
don't think it is for us. Scaleable nosql databases lean more towards 
that - the old-fashioned sql+orm LAMP-ish stack with legacy code: not so 
much. On-the-fly migration and "(implicit) record versioning" is not 
feasible with our current sql+orm stack.

The inherited database scheme in Kallithea _is_ fundamentally broken. 
There is no way we can "support" all previous schemes and invariants at 
once. Our only option is to establish a new clean data model and migrate 
all systems to the new invariants. The more stable we can keep it, the 
better. But I think the most stable solution often will be to change the 
database model.

I think the Kallithea database scheme is more like an internal API 
(which for good reasons is "unstable" in Mercurial ... and which cause 
some pain for projects like Kallithea who doesn't follow the official 
guideline for how to deal with that) and not so much like a on-disk 
format (which is quite stable in Mercurial).

Fortunately, compared to Mercurial, a Kallithea system only has one 
instance of the software accessing and encapsulation the database. 
(Interoperability with legacy systems and upgrades will probably be 
removed with after 0.2) Kallithea also has the existing system in place 
for upgrading/migrating the database content and scheme.

/Mads


More information about the kallithea-general mailing list