If your development environment is Linux, you can set and read an environment variable to take care of this.
As sudo or su, add the following line to /etc/environment: W2PYENV="dev" Python only loads the environment once, so I had to kill all the python instances. I just rebooted. Then, in db.py: from os import environ ## the 'get permission' method of avoiding a missing key exception ## a try..except block will also work if 'W2PYENV' in environ.keys() and keys['W2PYENV'] == 'dev': con = 'sqlite.... else: con = 'postgres By the way, I don't recommend this. SQLite and Postgres are not plug compatible and you may get surprised. On Wednesday, May 23, 2012 7:53:09 PM UTC-4, Jonathan Lundell wrote: > > On May 23, 2012, at 8:40 AM, Anthony wrote: > > If you use the built-in Rocket server in development but another server > (e.g., Apache, Nginx) on production, you could also do: > > if request.env.server_software.startswith('Rocket'): > con = 'sqlite://...' > etc. > > > > The only real problem with these schemes is that they tend to be > installation-dependent (not a fatal problem, but potentially tricky). You > *might* be using Rocket for production too, either directly (presumably > not a great idea) or behind mod_proxy, in which case the is_local test > would fail as well. > > This seems like a case (again) where it'd be nice to be able to drop a > line into a config file to set up the environment in an otherwise > configuration-independent way. > > Anthony > > On Wednesday, May 23, 2012 11:14:18 AM UTC-4, rochacbruno wrote: >> >> if request.is_local(): >> con = "sqlite://....." >> else: >> con = "postgres://..." >> >> db = DAL(con) >> >> On Wed, May 23, 2012 at 12:06 PM, Jason Brower <encomp...@gmail.com> >> wrote: >> >>> Locally I only want to use SQLite. And on the deployment I want to use >>> Postgres. >>> Is there a way to make this happen automatically? >>> BR, >>> Jason Brower >>> >> > > >