Get staging to run under docker on an EC2 host.

This commit is contained in:
jakedt 2014-04-10 18:30:09 -04:00
parent 0fd5da172e
commit 8fac0474b5
8 changed files with 40 additions and 41 deletions

View file

@ -5,6 +5,7 @@ import uuid
from random import SystemRandom
from datetime import datetime
from peewee import *
from sqlalchemy.engine.url import make_url
from urlparse import urlparse
from app import app
@ -21,19 +22,18 @@ SCHEME_DRIVERS = {
def generate_db(config_object):
db_kwargs = dict(config_object['DB_CONNECTION_ARGS'])
connection_string = config_object['DB_URI']
parsed_url = make_url(config_object['DB_URI'])
scheme, auth_and_host, dbname = urlparse(connection_string)[:3]
if auth_and_host:
if '@' in auth_and_host:
auth, db_kwargs['host'] = auth_and_host.split('@')
if ':' in auth:
db_kwargs['user'], db_kwargs['passwd'] = auth.split(':')
if parsed_url.host:
db_kwargs['host'] = parsed_url.host
if parsed_url.port:
db_kwargs['port'] = parsed_url.port
if parsed_url.username:
db_kwargs['user'] = parsed_url.username
if parsed_url.password:
db_kwargs['passwd'] = parsed_url.password
if scheme == 'sqlite':
dbname = dbname[1:]
return SCHEME_DRIVERS[scheme](dbname, **db_kwargs)
return SCHEME_DRIVERS[parsed_url.drivername](parsed_url.database, **db_kwargs)
db = generate_db(app.config)