I found out that the second issue is due to the fact that the
ClasspathDatabaseScriptProvider can find the createdb.sql script in the
roller-planet-business jar instead of the roller-weblogger-business
jar. You can get lucky and find the right one or unlucky and pick up
the wrong one (from the planet jar) at autoinstall time.
Also (separate issue) the SQLScriptRunner class has a problem parsing
the one from the planet jar because of the way it ends in comment
lines. It needs to end in a statement.
I think this says we need the scripts to all end up somewhere under
WEB-INF/classes which is prioritized by the class loader, or we need to
start naming things distinctly and distinguishing at auto-install time.
The latter might be better, but would require some additional code and
build change.
Comments?
On 2/8/10 7:17 AM, Anil Gangolli wrote:
Dave et al.
After building off the recently mavenized trunk, I found that the real
db scripts end up inside the roller-weblogger-business jar under the
classpath /sql/<dbtype>/. There are still a number of older ones
ending up in the exploded war
target/roller/WEB-INF/classes/dbscripts/<dbtype>. These probably
ought to go away or be unified with the new ones.
The ClasspathDatabaseScriptProvider is prepending the old path
("/dbscripts/" instead of "/sql/") and not finding the createdb.sql
for automatic creation/upgrade.
It's easy enough to fix the path formation (which I intend to commit
to trunk for now, just so it will work), but I think we ought to
consider whether having the scripts in the jar is the right thing. It
makes any kind of manual execution or tweaking harder.
On a separate, but related note, once I fixed the problem locating the
createdb.sql resource, the execution of it by the auto installer is
failing after about six tables complaining of an error reading or
parsing the script. If I manually extract the script from the jar and
run it via mysql, it seems to work fine. I am still debugging what is
causing that. It might be some kind of line termination issue or
platform-specific issue. I am currently working on a Mac.
--a.