# Setup logging
log = logging.getLogger("pbs.jobs")
-JobPackage = sqlalchemy.Table(
- "job_packages", database.Base.metadata,
+class JobPackage(database.Base):
+ __tablename__ = "job_packages"
+
+ # Job ID
+
+ job_id = Column(Integer, ForeignKey("jobs.id"), primary_key=True, nullable=False)
# Job
- Column("job_id", ForeignKey("jobs.id"), nullable=False),
+
+ job = sqlalchemy.orm.relationship("Job", foreign_keys=[job_id],
+ viewonly=True, lazy="joined", innerjoin=True)
+
+ # Package ID
+
+ pkg_id = Column(Integer, ForeignKey("packages.id"), primary_key=True, nullable=False)
# Package
- Column("pkg_id", ForeignKey("packages.id"), nullable=False),
-)
+
+ pkg = sqlalchemy.orm.relationship("Package", foreign_keys=[pkg_id],
+ viewonly=True, lazy="joined", innerjoin=True)
+
class Jobs(base.Object):
def init(self):
# Binary Packages
- packages = sqlalchemy.orm.relationship("Package", secondary=JobPackage, lazy="selectin")
+ packages = sqlalchemy.orm.relationship("Package", secondary="job_packages", lazy="selectin")
async def _import_packages(self, uploads):
"""
)
.join(
jobs.JobPackage,
- jobs.JobPackage.c.job_id == jobs.Job.id,
+ jobs.JobPackage.job_id == jobs.Job.id,
)
.join(
packages.Package,
- packages.Package.id == jobs.JobPackage.c.pkg_id,
+ packages.Package.id == jobs.JobPackage.pkg_id,
)
.where(
packages.Package.deleted_at == None,