X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Fcore%2Fdatabase.py;h=ecaa31564b724ac589ecd951b19f04a8ae1daaf4;hb=refs%2Fchanges%2F78%2F7378%2F1;hp=db8cf285fb5347632929dc18ad13569cd32174cd;hpb=b77fe26906b4acdf5f2b110f07433382520f44ff;p=osm%2FPOL.git diff --git a/osm_policy_module/core/database.py b/osm_policy_module/core/database.py index db8cf28..ecaa315 100644 --- a/osm_policy_module/core/database.py +++ b/osm_policy_module/core/database.py @@ -23,16 +23,18 @@ ## import datetime import logging +import os -from peewee import CharField, IntegerField, ForeignKeyField, Model, TextField, AutoField, DateTimeField +from peewee import CharField, IntegerField, ForeignKeyField, Model, TextField, AutoField, DateTimeField, Proxy +from peewee_migrate import Router from playhouse.db_url import connect +from osm_policy_module import migrations from osm_policy_module.core.config import Config log = logging.getLogger(__name__) -cfg = Config.instance() -db = connect(cfg.OSMPOL_SQL_DATABASE_URI) +db = Proxy() class BaseModel(Model): @@ -70,10 +72,12 @@ class ScalingAlarm(BaseModel): class DatabaseManager: - def create_tables(self): + def __init__(self, config: Config): + db.initialize(connect(config.get('sql', 'database_uri'))) + + def create_tables(self) -> None: db.connect() - db.create_tables([ScalingGroup, ScalingPolicy, ScalingCriteria, ScalingAlarm]) + with db.atomic(): + router = Router(db, os.path.dirname(migrations.__file__)) + router.run() db.close() - - def get_alarm(self, alarm_uuid: str): - return ScalingAlarm.select().where(ScalingAlarm.alarm_uuid == alarm_uuid).get()