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
