[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
State of Perl-based database setup utilities for LedgerSMB 1.3
- Subject: State of Perl-based database setup utilities for LedgerSMB 1.3
- From: Chris Travers <..hidden..>
- Date: Fri, 27 May 2011 13:07:06 -0700
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.
The second approach is the use of makefile targets installdb and
installdb_interactive. These are not well documented at the moment
and the interface of installdb is very sub-optimal. If you set
appropriate environment variables as documented in README.tests file
and rune make installdb, it will install a database for you and run
sanity checks on that database. If you run make
installdb_interactive, it will ask you for all relevant information
and set the environment variables locally with the script. This comes
build into the default installation of LedgerSMB 1.3 at the moment,
but it relies on two important dependencies: make and a perl test
harness.
The structure of the scripts is such that we could do without make
quite easily, but if we want to test the database post-install
(ensuring no unexpectedly overloaded functions, etc), we cannot
reasonably get rid of the test framework without maintaining
additional levels of abstraction to the database tests.
The user interface problems here can be reasonably solved through use
of wrapper scripts which take command line arguments, set up
appropriate environment variables, and run the relevant scripts or
commands. 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? 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?
Best Wishes,
Chris Travers