I have a situation in my applications that I need to switch databases
dynamically - I use a pretty old version of Torque (3.02) so I had to
tweak it a little but basically what I do is get the Configuration
object, modify the properties in it and re-configure Torque:

public static final String URL = "dsfactory.logic_name.connection.url";
public static  void switchDatabase(String logicName, String oldDatabase,
String newDatabase) throws Exception
        {
                Configuration config = Torque.getConfiguration();
                String key = URL.replaceAll("logic_name",logicName);
                String url = config.getString(key);
                if(url == null)
                        throw new InvalidArgumentException("Wrong logic name - 
"+logicName);
                url = url.replaceAll(oldDatabase, newDatabase);
                config.setProperty(key, url);
                Torque.reConfig(config);
        }

Note that Torque.reConfig(Configuration config); is a method I added
because in that version Torque.init(Configuration) was not re-entrant, I
think it is fixed in later versions.
Guy

On Thu, 2006-04-20 at 09:55 -0400, Eustache wrote:
> OK sorry for not being clear:
> It's a single web app that wants to have access to several databases at 
> runtime.
> Roughly: the user can select the database he is going to work on, and he 
> can even use this webapp to add a new database he is going to work on.
> Those databases have the same structure though.
> I hope this helps clarify
> 
> >Before I answer this, it would be nice to know more about
> >how you are defining "using multiple databases".  In 
> >particular, are you talking about multiple separate 
> >instances of your code, each using different DB's (e.g
> >multiple web applications) or a single monolithic code
> >base that does this (e.g a single web application or
> >standalone application).
> >
> >  
> >
> >>-----Original Message-----
> >>From: Eustache [mailto:[EMAIL PROTECTED] 
> >>Sent: Thursday, April 20, 2006 9:44 AM
> >>To: [email protected]
> >>Subject: using unknown number of databases having the same "structure"
> >>
> >>
> >>Hi, maybe somebody can give me an idea or point me to some resource:
> >>I have several databases having the same structure but the number of 
> >>databases and their name are not known at design time (I have another 
> >>database to remember all that).
> >>I would like to be able to use Torque generated classes with 
> >>parameters 
> >>at runtime (db name, host, user, etc.).
> >>Of course I would like to generate only one bunch of classes for all 
> >>these databases since they have the same structure.
> >>I looked at DB Schema support 
> >>http://db.apache.org/torque/releases/torque-3.2/docs-all-compo
> >>    
> >>
> >nents/other-howtos/schema-howto.html
> >but I don't think it is what I want.
> >I also looked at "using Torque with multiple databases" but it is only 
> >part of the answer because first I would like to make this configuration
> >
> >dynamic (at runtime) and second the generated classes sould use a 
> >"parameterized" database name (not sure there).
> >Any ideas ?
> >Thx very much,
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >Duke CE Privacy Statement
> >Please be advised that this e-mail and any files transmitted with it are 
> >confidential communication or may otherwise be privileged or confidential 
> >and are intended solely for the individual or entity to whom they are 
> >addressed.  If you are not the intended recipient you may not rely on the 
> >contents of this email or any attachments, and we ask that you  please not 
> >read, copy or retransmit this communication, but reply to the sender and 
> >destroy the email, its contents, and all copies thereof immediately.  Any 
> >unauthorized dissemination, distribution or copying of this communication is 
> >strictly prohibited.
> >
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >  
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to