29 lines
778 B
Python
29 lines
778 B
Python
|
"""
|
||
|
Usage: in web2py models/db.py
|
||
|
|
||
|
from gluon.contrib.heroku import get_db
|
||
|
db = get_db()
|
||
|
|
||
|
"""
|
||
|
import os
|
||
|
from gluon import *
|
||
|
from pydal.adapters import adapters, PostgrePsyco
|
||
|
from pydal.helpers.classes import DatabaseStoredFile
|
||
|
|
||
|
@adapters.register_for('postgres')
|
||
|
class HerokuPostgresAdapter(DatabaseStoredFile, PostgrePsyco):
|
||
|
uploads_in_blob = True
|
||
|
|
||
|
def get_db(name = None, pool_size=10):
|
||
|
if not name:
|
||
|
names = [n for n in os.environ.keys()
|
||
|
if n[:18]+n[-4:]=='HEROKU_POSTGRESQL__URL']
|
||
|
if names:
|
||
|
name = names[0]
|
||
|
if name:
|
||
|
db = DAL(os.environ[name], pool_size=pool_size)
|
||
|
current.session.connect(current.request, current.response, db=db)
|
||
|
else:
|
||
|
db = DAL('sqlite://heroku.test.sqlite')
|
||
|
return db
|