[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Call for testing experimental patch
- Subject: Re: Call for testing experimental patch
- From: "Chris Travers" <..hidden..>
- Date: Wed, 13 Sep 2006 07:53:38 -0700
David Tangye wrote:
On Tue, 2006-09-12 at 23:41 -0700, Chris Travers wrote:
That is what the insert's are for :-) If they fail you have
problems....
Yes, oh OK, so migration from SL will need to involve re-inserting all
the old SL data eg create a new dataset in LedgerSMB, and then will a
backup file from SL run OK?
Wrong table. The transaction id patch inserts all existing transaction
id's into the id_tracker table. This ensures that they are unique.
These are the inserts I was talking about.
Think of this as "scaffolding."
:-)
The meaning/usage of 'id' (and 'num' and 'code'?) needs to be
defined
and consistently used, otherwise you get confusion and bugs
written into
the system down the track.
Agreed. But again, do we rewrite the app from scratch which is what
would be required, or do we stabilize and fix in place?
Both :-)
Stabilize. Add nothing new. And then redevelop. Don't get stuck with
creeping enhancements into a schema/technology that cannot handle it.
Its like quicksand. I am sure you have been there.
If you can possibly plan to do it that way, that's what I would try very
hard to do. I don't mean throw everything away. Hmm, then again, the few
times I took over others' apps, sooner or later I almost always realised
it was far more effective to just bite the bullet and start pretty-well
again.
Well, there are two problems with this approach.
1) you leave the existing users out in the cold
2) the amount if immediate development work to the first release means
that it is far less likley to be successful.
Our current approach is to look for the things which need fixing most
and re-engineer them in place first. Then we can take our time with the
rest. In essence this means stabilizing things, fixing the worst of it,
and then re-engineering things bit by bit.
The most critical table in LedgerSMB is the acc_trans table because this
holds all the financial transaction data. Fortunately this is one of
the only tables which doesn't have to assume braindead inserts. I think
the only thing left to do is add a foreign key constraint against
id_tracker but I want a little more time to test this. Once that
completed, I think I will tackle the Shipto tables, and once that is
sane, we can more easily fix the rest of the schema. We plan to have
multiple shipto support next version (but this has not been committed to
svn yet so no guarantees), but the version after is a good target for
reworking the shipto schema so that it works a bit better.
Best Wishes,
Chris Travers