Begin moving things into the objects.
This commit is contained in:
parent
6d15886989
commit
14e68f26ab
35
dataset/persistence/database.py
Normal file
35
dataset/persistence/database.py
Normal file
@ -0,0 +1,35 @@
|
||||
import logging
|
||||
from threading import RLock
|
||||
|
||||
from sqlalchemy import create_engine
|
||||
from migrate.versioning.util import construct_engine
|
||||
from sqlalchemy.pool import NullPool
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Database(object):
|
||||
|
||||
def __init__(self, url):
|
||||
kw = {}
|
||||
if url.startswith('postgres'):
|
||||
kw['poolclass'] = NullPool
|
||||
engine = create_engine(url, **kw)
|
||||
self.lock = RLock()
|
||||
self.url = url
|
||||
self.engine = construct_engine(engine)
|
||||
self.metadata = MetaData()
|
||||
self.metadata.bind = self.engine
|
||||
self.tables = {}
|
||||
self.indexes = {}
|
||||
|
||||
@classmethod
|
||||
def connect(self, url):
|
||||
return Database(url)
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return '<Database(%s)>' % self.url
|
||||
|
||||
|
||||
|
||||
@ -1,32 +1,13 @@
|
||||
import logging
|
||||
from datetime import datetime
|
||||
from collections import defaultdict
|
||||
from threading import RLock
|
||||
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy import Integer, UnicodeText, Float, DateTime, Boolean
|
||||
from sqlalchemy.schema import Table, MetaData, Column, Index
|
||||
from sqlalchemy.sql import and_, expression
|
||||
from migrate.versioning.util import construct_engine
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
lock = RLock()
|
||||
|
||||
def connect(url):
|
||||
""" Create an engine for the given database URL. """
|
||||
kw = {}
|
||||
if url.startswith('postgres'):
|
||||
#kw['pool_size'] = 5
|
||||
from sqlalchemy.pool import NullPool
|
||||
kw['poolclass'] = NullPool
|
||||
engine = create_engine(url, **kw)
|
||||
engine = construct_engine(engine)
|
||||
meta = MetaData()
|
||||
meta.bind = engine
|
||||
engine._metadata = meta
|
||||
engine._tables = dict()
|
||||
engine._indexes = dict()
|
||||
return engine
|
||||
|
||||
def create_table(engine, table_name):
|
||||
with lock:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user