30 lines
793 B
Python
30 lines
793 B
Python
"""
|
|
Usage: in web2py models/db.py
|
|
|
|
from gluon.contrib.heroku import get_db
|
|
db = get_db()
|
|
|
|
"""
|
|
import os
|
|
from gluon import *
|
|
from gluon.dal import ADAPTERS, UseDatabaseStoredFile,PostgreSQLAdapter
|
|
|
|
class HerokuPostgresAdapter(UseDatabaseStoredFile,PostgreSQLAdapter):
|
|
drivers = ('psycopg2',)
|
|
uploads_in_blob = True
|
|
|
|
ADAPTERS['postgres'] = HerokuPostgresAdapter
|
|
|
|
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
|