[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: State of Perl-based database setup utilities for LedgerSMB 1.3



On Fri, 27 May 2011 13:07:06 -0700
Chris Travers <..hidden..> wrote:

> Currently there are two approaches to installing databases in Perl.
> The first (initiate.pl) has officially been moved to add-ons and is a
> web-based interface for this process.  I have not personally used it,
> although I have recently committed a lot of patches against it.

I'm not sure I like a web-based interface.  This makes automated
installations and testing much harder.

> The second approach is the use of makefile targets installdb and
> installdb_interactive.

I don't like that approach either.  I prefer an approach like this:

1) make

2) make install

3) ledgersmb-init-database

That is, have a dedicated command-line script that initializes the database.
It can be interactive, but should also take command-line options for a
fully-automated setup of the database.  The ledgersmb-init-database
script should do sanity checks to see if there's already a database, etc.
If it does find a database, it can offer to do a schema upgrade (or
do it automatically if so told by a command-line option.)

This has the nice side-effect of making the upgrade procedure
absolutely identical to the initial-installation procedure: make;
make-install; ledgersmb-init-database.

> But this leads to the question:  do we want to depend on
> perl test infrastructure and/or make utilities to be on systems we are
> building databases from?

I don't think it's a good idea to depend on those for systems on which
we deploy.

> And given the amount of code in the
> database, do we want to treat creating a new company database as a
> build process or an administrative task for dependency and/or UI
> reasons?

Administrative task, for sure.  Otherwise packaging LedgerSMB as a .deb
or .rpm becomes difficult.

Regards,

David.