jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Harris" <michael.e.har...@gmail.com>
Subject sanity check on oracle PMs
Date Fri, 22 Aug 2008 18:25:37 GMT
I just need to bounce this idea off users; I want to make sure there is not
any easier way to do this.

The company for whom I work has some very strict rules around database
users.  If an app is called project, then there are two db users

project
and
projectapp

project can create tables, projectapp can do select, update, delete, insert
to project's tables.  However, projectapp works in project's schema (there
are synonyms put in place so that projectapp can view project's schema, but
the tables do not appear in projectapp's schema).  I think what I am seeing
in the OraclePersistenceManager's init code is that it looks for the NODE
table in a schema that has the same name as the db user.

so when i run my tests with project's db credentials everything is hunky
dory; tables are created and it works fine.  However, when change the
connection params to use projectapp's credentials, the init method cannot
see the tables because they live in project's schema, not in projectapps.

So the workaround was as follows:

1)  extract the oracle.ddl file and augment it so that it adds synonyms and
grants permissions to the app user.  We are going to have process in place
to use the ddl (either a shell script or run the tests and let the PM create
the tables) to generate the tables before release.
2)  Subclass OraclePM and override its checkSchema() method so that it
doesn't try and create the tables--just assume the tables are there. if they
arent a db admin needs to run the ddl create step.

The question is: is there a way to tell OraclePM that the tables live in a
schema with a name different from the user's name?  Or do I have to it as
described above given this company's rules on database users....

thanx



-- 
---------------------
Michael Harris

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message