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=330d8c5be8df290f8d41331515e73f651aedbc13;hpb=a14cf16181c8b39f12c872c486e0b292c0068944;p=osm%2FPOL.git diff --git a/osm_policy_module/core/database.py b/osm_policy_module/core/database.py index 330d8c5..ecaa315 100644 --- a/osm_policy_module/core/database.py +++ b/osm_policy_module/core/database.py @@ -23,10 +23,13 @@ ## import datetime import logging +import os 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__) @@ -69,14 +72,12 @@ class ScalingAlarm(BaseModel): class DatabaseManager: - def init_db(self, config: Config): + def __init__(self, config: Config): db.initialize(connect(config.get('sql', 'database_uri'))) - self.create_tables() - def create_tables(self): + def create_tables(self) -> None: + db.connect() with db.atomic(): - db.create_tables([ScalingGroup, ScalingPolicy, ScalingCriteria, ScalingAlarm]) - - def get_alarm(self, alarm_uuid: str): - with db.atomic(): - return ScalingAlarm.select().where(ScalingAlarm.alarm_uuid == alarm_uuid).get() + router = Router(db, os.path.dirname(migrations.__file__)) + router.run() + db.close()