ok, I think now I understand how the request_tenant works. So there would 
be just one database for everything but every table is filtered by the 
field? If that is the case that's really not what I want.

I also thought about selecting the db by the request.env.http_host etc. 
this also seems like a hack to me but I guess I could live with that... 
only problem is this will not work with cron jobs (accessing the db), at 
least that is what I assume. I'm currently using enviroment variables for 
the db config but this fails now because of the cron jobs (external cron).

I'm now thinking of reading the db config from a config file in db.py but 
this also seems like a really bad solution. Then I'd probably have the file 
I/O for every request just to get the db configuration.

Am Samstag, 31. März 2012 03:05:27 UTC+2 schrieb nick name:
>
> The database connection is initialized in models/db.py (assuming you used 
> the wizard to generate your application). Look for the line that says 
> "db=DAL(...)", and make it select the right database according to your 
> request, e.g. request.host, or however else you determine the configuration 
> environment.
>
> Alternatively, you could keep it all in the same database with a 
> "request_tenant' field: 
> https://groups.google.com/d/topic/web2py/CixV2qflqkk/discussion - 
>
> if you add a field such as the following to a table:
>
> ...
>    Field('request_tenant', default=request.host),
> ...
> (where the default is however you identify the specific environment)
>
> web2py will add a "and request_tenant=''+request.host+''" to every query 
> relating to that table, and of course would insert it to new records. 
> Effectively, this means every record in a table with such a field will only 
> be seen when the default value of the field in this request is the same as 
> when it was generated. (You can still get all records by either setting the 
> default to None, or adding an "ignore_common_filter=True")
>
> On Friday, March 30, 2012 4:55:16 PM UTC-4, Alex wrote:
>>
>> Hello,
>>
>> I need to configure my data source for different instances. Currently 
>> this is the last problem preventing me from going productive. I run my 
>> application for multiple customer instances and of course the database 
>> connection is different for each customer. This issue also occurs if you 
>> have a test and a productive environment. I think this is a fairly common 
>> use case and necessary for most real world applications, so I'm really 
>> surprised that I didn't see any solution for this in web2py (especially 
>> since web2py is so easy and powerful for everything else). Or did I just 
>> miss something?
>>
>> Massimo, in case you read this, do you have an advice for me? is an 
>> environment configuration a feature that could be added in the future? I 
>> think that I read somewhere that web2py developers don't think this is 
>> necessary but I really don't understand why.
>>
>> Is there a workaround for me? I have some ideas but nothing seems to be 
>> optimal. I'd prefer to avoid dirty hacks...
>>
>> thanks,
>> Alex
>>
>>

Reply via email to