From: subhash kumar singh Date: Wed, 13 Nov 2024 05:47:26 +0000 (+0000) Subject: Model for ModelId X-Git-Tag: 3.0.0~38 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=d31b2509f0fe98e39cafb3a0819567177d8aac93;p=aiml-fw%2Fawmf%2Ftm.git Model for ModelId Introduced changes for modelID which will be referenced by trainingjob. Change-Id: I4fd24eb03e6fe5dcd0c2ae91091035a093bda22c Signed-off-by: subhash kumar singh --- diff --git a/trainingmgr/models/trainingjob.py b/trainingmgr/models/trainingjob.py index db2e051..3452516 100644 --- a/trainingmgr/models/trainingjob.py +++ b/trainingmgr/models/trainingjob.py @@ -15,11 +15,27 @@ # limitations under the License. # # ============================================================================== -from . import db +from trainingmgr.models import db from datetime import datetime from sqlalchemy.sql import func from sqlalchemy import Integer, ForeignKey, String, DateTime, Column, Boolean from sqlalchemy.orm import relationship +from sqlalchemy import PrimaryKeyConstraint, ForeignKeyConstraint, UniqueConstraint +import json + +class ModelID(db.Model): + __tablename__ = 'model' + id = db.Column(db.Integer, primary_key=True) + modelname = db.Column(db.String(128), nullable=False) + modelversion = db.Column(db.String(128), nullable=False) + artifactversion = db.Column(db.String(128), nullable=True) + + __table_args__ = ( + UniqueConstraint("modelname", "modelversion", name="unique model"), + ) + + trainingJob = relationship("TrainingJob", back_populates='modelref') + class TrainingJob(db.Model): __tablename__ = "trainingjob_info_table" @@ -34,11 +50,30 @@ class TrainingJob(db.Model): training_config = Column(String(5000), nullable=False) model_url = Column(String(1000), nullable=True) notification_url = Column(String(1000), nullable=True) - model_name = Column(String(128), nullable=True) + model_name = db.Column(db.String(128), nullable=True) + model_id = Column(Integer, nullable=False) model_info = Column(String(1000), nullable=True) #defineing relationships steps_state = relationship("TrainingJobStatus", back_populates="trainingjobs") + __table_args__ = ( + ForeignKeyConstraint( + ["model_id"], + ["model.id"] + ), + ) + + + modelref = relationship("ModelID", back_populates="trainingJob") + + # # Serialize and Deserialize training_config to/from JSON + # @property + # def training_config_data(self): + # return json.loads(self.training_config) + + # @training_config_data.setter + # def training_config_data(self, value): + # self.training_config = json.dumps(value) def __repr__(self): return f'' \ No newline at end of file