Source code for changes.models.latest_green_build
from __future__ import absolute_import
import uuid
from sqlalchemy import UniqueConstraint, Column, ForeignKey, String
from sqlalchemy.orm import relationship
from changes.config import db
from changes.db.types.guid import GUID
[docs]class LatestGreenBuild(db.Model):
"""
Represents the latest green build for a given branch of a given project
A project with multiple latest_green_builds is because it has multiple branches
"""
__tablename__ = 'latest_green_build'
__table_args__ = (
UniqueConstraint('project_id', 'branch', name='unq_project_branch'),
)
id = Column(GUID, primary_key=True, default=uuid.uuid4)
project_id = Column(GUID, ForeignKey('project.id'), nullable=False)
build_id = Column(GUID, ForeignKey('build.id'), nullable=False)
branch = Column(String(128))
project = relationship('Project', innerjoin=True)
build = relationship('Build', innerjoin=True)
def __init__(self, **kwargs):
super(LatestGreenBuild, self).__init__(**kwargs)
if not self.id:
self.id = uuid.uuid4()