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

Re: Much more evolved database preparation script



Just a couple points about make install and why it is not currently
supported.  This is something that could quite easily be optionally
supported and quite frankly if you consistently run it at the moment
every time you update, that's supportable.

Currently make install will copy everything from the ledgersmb root
director to (I believe) the site perl directory.  This is fine up to a
point, in the sense that Perl will find the modules and load them
properly and if the rest of the configuration is handled, but it
causes two issues to be aware of, one minor and the other a little
more limiting.

The first is that it currently clutters up the site-perl directory
with sql files, templates, and the like.  That's annoying and needs to
be fixed before we say "go ahead and run make install" but it's not
the end of the world if you want to make it your policy to run it
every time.

The larger problem is that it makes it impossible to run parallel
versions side by side, because Perl will pull the module out of
site-perl first, meaning that the copy in the local directory is
ignored.  If you are trying to run 1.2 and 1.3 on the same computer
you cannot use make install, because the one installed last will
overwrite the one installed earlier, and only one set of perl modules
can be effectively loaded in this way.  This is a fundamental issue
and one that doesn't have a really simple solution to.  Consequently I
don't imagine make install will ever be used in a development
environment.

As for installing the database, it is possible to do this right now
using make install (technically it happens during the make test phase
because the database is created, populated with test data, tested,
test inserts rolled back, and database deemed to succeed or fail
testing).  However, we should probably have a custom make target for
this, because folks are likely to want the ability to install multiple
databases in this way, and LSMB_INSTALL_DB=1.... make test is probably
not as clear as it needs to be (that is essentially what the installdb
target should do, however, is map to that).

Best Wishes,
Chris Travers