Login | Register
My pages Projects Community openCollabNet

propel
Reply to message

* = Required fields
* Subject
* Body
Attachments
Send reply to
Topic
Author (directly in email)
Please type the letters in the image above.

Original message

Author Robert Bruce <rob@tdd.org.uk>
Full name Robert Bruce <rob@tdd.org.uk>
Date 2007-04-04 04:17:52 PDT
Message On Wed, April 4, 2007 12:08 pm, Hans Lellelid wrote:
> Robert Bruce wrote:
>> Hans Lellelid wrote:
>>> Robert Bruce wrote:
>>>
>>>> Hans Lellelid wrote:
>>>>
>>>>
>>>>> Robert Bruce wrote:
>>>>>
>>>>>
>>>>>
>>>>>> I want to reuse the generated classes for multiple databases, so
>>>>>> effectively they exist as part of a shared library for instances of
>>>>>> my
>>>>>> application. However because the DATABASE_NAME constant in the Peer
>>>>>> classes is set to the name of the database against which they were
>>>>>> originally built, I can't (to my knowledge) dynamically use a
>>>>>> different
>>>>>> database.
>>>>>>
>>>>>>
>>>>>>
>>>>> Well, you effectively can change your database at runtime. The
>>>>> DATABASE_NAME constant is simply an identifier that tells Propel "use
>>>>> the connection info associated with that key in the configuration
>>>>> file".
>>>>> The DATABASE_NAME need have no actual relationship with the actual
>>>>> name of your database in your RDBMS.
>>>>>
>>>>> To change a database name (or any other properties of the connection)
>>>>> at
>>>>> runtime you can use the Propel::setConnection() (I think that's a
>>>>> valid
>>>>> method...) or setConfiguration().
>>>>>
>>>>> Does that help?
>>>>>
>>>>> Hans
>>>>>
>>>>> --------------------​--------------------​--------------------​---------
>>>>> To unsubscribe, e-mail: dev-unsubscribe@prop​el.tigris.org
>>>>> For additional commands, e-mail: dev-help at propel dot tigris dot org
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Okay, I understand what you are saying, wouldn't Propel::Init() also
>>>> set
>>>> the configuration? As that's the method I've used. So it's actually a
>>>> DATASOURCE_NAME rather than a DATABASE_NAME ?
>>>>
>>>>
>>> Yes, that's correct -- Propel::init() will work fine too, unless you
>>> want to change it after Propel was already initialized. Yes, you're
>>> correct this is a datasource name; thank you - that's a better term for
>>> me to use in the future. In fact, we should probably rename that for
>>> Propel 2.0, since this is a cause of much confusion (understandably).
>>>
>>> Hans
>>>
>>> --------------------​--------------------​--------------------​---------
>>> To unsubscribe, e-mail: dev-unsubscribe@prop​el.tigris.org
>>> For additional commands, e-mail: dev-help at propel dot tigris dot org
>>>
>>>
>> Just another question, the static method Propel::getDefaultDB is that
>> meant to return the name of the default database or the name of the
>> default datasource?
>
> Default datasource. The only place Propel is actually [indirectly]
> concerned with database name is when it creates the connection. Even
> then, it's just passing the DSN you provide in runtime conf to the the
> PDO constructor, so it never actually knows what the name of the
> database is. (And with databases like SQLite there's only a filename,
> not an separate database name.)
>
> Hans
>
> --------------------​--------------------​--------------------​---------
> To unsubscribe, e-mail: dev-unsubscribe@prop​el.tigris.org
> For additional commands, e-mail: dev-help at propel dot tigris dot org
>
>

Okay, so like your suggestion to rename, there are a few places in which
this leads to confusion, even the description of the method getDefaultDB
in the php doc comments says it's getting the default database name.

Rob