From fc67d58310a142cbafab41a643360e3feee963b3 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Wed, 25 Nov 2015 16:57:13 -0500 Subject: [PATCH] Add missing relationship from orm models This commit adds the missing relationship definitions to the ORM models in subunit2sql.db.models. These relationships are key for enabling the orm to build proper queries that span multiple tables. We were seeing very poorly constructed queries without them in place. Change-Id: I2cc2ead5a8148f564c075161e0d09e9083bcee8d --- subunit2sql/db/models.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/subunit2sql/db/models.py b/subunit2sql/db/models.py index c751588..b58925c 100644 --- a/subunit2sql/db/models.py +++ b/subunit2sql/db/models.py @@ -89,6 +89,12 @@ class TestRun(BASE, SubunitBase): start_time_microsecond = sa.Column(sa.Integer(), default=0) stop_time = sa.Column(sa.DateTime()) stop_time_microsecond = sa.Column(sa.Integer(), default=0) + test = sa.orm.relationship(Test, backref=sa.orm.backref('test_run_test'), + foreign_keys=test_id, + primaryjoin=test_id == Test.id) + run = sa.orm.relationship(Run, backref=sa.orm.backref('test_run_run'), + foreign_keys=run_id, + primaryjoin=run_id == Run.id) class RunMetadata(BASE, SubunitBase): @@ -99,6 +105,8 @@ class RunMetadata(BASE, SubunitBase): key = sa.Column(sa.String(255)) value = sa.Column(sa.String(255)) run_id = sa.Column(sa.BigInteger, sa.ForeignKey('runs.id')) + run = sa.orm.relationship(Run, backref='run', foreign_keys=run_id, + primaryjoin=run_id == Run.id) class TestRunMetadata(BASE, SubunitBase): @@ -110,6 +118,10 @@ class TestRunMetadata(BASE, SubunitBase): key = sa.Column(sa.String(255)) value = sa.Column(sa.String(255)) test_run_id = sa.Column(sa.BigInteger, sa.ForeignKey('test_runs.id')) + test_run = sa.orm.relationship(TestRun, + backref=sa.orm.backref('test_run_meta'), + foreign_keys=test_run_id, + primaryjoin=test_run_id == TestRun.id) class TestMetadata(BASE, SubunitBase): @@ -121,6 +133,8 @@ class TestMetadata(BASE, SubunitBase): key = sa.Column(sa.String(255)) value = sa.Column(sa.String(255)) test_id = sa.Column(sa.BigInteger, sa.ForeignKey('tests.id')) + test = sa.orm.relationship(Test, backref='test', foreign_keys=test_id, + primaryjoin=test_id == Test.id) class Attachments(BASE, SubunitBase): @@ -131,3 +145,6 @@ class Attachments(BASE, SubunitBase): test_run_id = sa.Column(sa.BigInteger) label = sa.Column(sa.String(255)) attachment = sa.Column(sa.LargeBinary()) + test_run = sa.orm.relationship(TestRun, backref='test_run_attach', + foreign_keys=test_run_id, + primaryjoin=test_run_id == TestRun.id)