Move DB init code into bs.sqlalchemy
This commit is contained in:
parent
ff5766e398
commit
cf5989406a
@ -2,10 +2,26 @@ from sqlalchemy import or_
|
|||||||
from sqlalchemy.orm import exc
|
from sqlalchemy.orm import exc
|
||||||
|
|
||||||
from billingstack import exceptions
|
from billingstack import exceptions
|
||||||
from billingstack.sqlalchemy.model_base import ModelBase
|
from billingstack.openstack.common import log
|
||||||
|
from billingstack.sqlalchemy import model_base, session
|
||||||
|
|
||||||
|
|
||||||
|
LOG = log.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class HelpersMixin(object):
|
class HelpersMixin(object):
|
||||||
|
def setup(self, config_group):
|
||||||
|
self.session = session.get_session(config_group)
|
||||||
|
self.engine = session.get_engine(config_group)
|
||||||
|
|
||||||
|
def setup_schema(self):
|
||||||
|
""" Semi-Private Method to create the database schema """
|
||||||
|
self.base.metadata.create_all(self.session.bind)
|
||||||
|
|
||||||
|
def teardown_schema(self):
|
||||||
|
""" Semi-Private Method to reset the database schema """
|
||||||
|
self.base.metadata.drop_all(self.session.bind)
|
||||||
|
|
||||||
def _save(self, obj, save=True):
|
def _save(self, obj, save=True):
|
||||||
if not save:
|
if not save:
|
||||||
return obj
|
return obj
|
||||||
@ -100,7 +116,7 @@ class HelpersMixin(object):
|
|||||||
:param obj: ID or instance / ref of the object
|
:param obj: ID or instance / ref of the object
|
||||||
:param cls: The class to run self._get on if obj is not a ref
|
:param cls: The class to run self._get on if obj is not a ref
|
||||||
"""
|
"""
|
||||||
if isinstance(obj, ModelBase):
|
if isinstance(obj, model_base.ModelBase):
|
||||||
return obj
|
return obj
|
||||||
elif isinstance(obj, basestring) and cls:
|
elif isinstance(obj, basestring) and cls:
|
||||||
return self._get(cls, obj)
|
return self._get(cls, obj)
|
||||||
|
@ -17,9 +17,9 @@ from billingstack.openstack.common import log as logging
|
|||||||
from billingstack import exceptions
|
from billingstack import exceptions
|
||||||
from billingstack import utils as common_utils
|
from billingstack import utils as common_utils
|
||||||
from billingstack.sqlalchemy import utils as db_utils, api
|
from billingstack.sqlalchemy import utils as db_utils, api
|
||||||
|
from billingstack.sqlalchemy.session import SQLOPTS
|
||||||
from billingstack.storage import base
|
from billingstack.storage import base
|
||||||
from billingstack.storage.impl_sqlalchemy import models
|
from billingstack.storage.impl_sqlalchemy import models
|
||||||
from billingstack.storage.impl_sqlalchemy.session import get_session, SQLOPTS
|
|
||||||
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
@ -42,16 +42,10 @@ class Connection(base.Connection, api.HelpersMixin):
|
|||||||
"""
|
"""
|
||||||
SQLAlchemy connection
|
SQLAlchemy connection
|
||||||
"""
|
"""
|
||||||
|
base = models.BASE
|
||||||
|
|
||||||
def __init__(self, config_group):
|
def __init__(self, config_group):
|
||||||
self.session = get_session(config_group)
|
self.setup(config_group)
|
||||||
|
|
||||||
def setup_schema(self):
|
|
||||||
""" Semi-Private Method to create the database schema """
|
|
||||||
models.BASE.metadata.create_all(self.session.bind)
|
|
||||||
|
|
||||||
def teardown_schema(self):
|
|
||||||
""" Semi-Private Method to reset the database schema """
|
|
||||||
models.BASE.metadata.drop_all(self.session.bind)
|
|
||||||
|
|
||||||
def set_properties(self, obj, properties, cls=None, rel_attr='properties', purge=False):
|
def set_properties(self, obj, properties, cls=None, rel_attr='properties', purge=False):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user