From 8c3150da33aa05808eeba8b91cb92b9b76251c67 Mon Sep 17 00:00:00 2001 From: Christopher Bohn <bohn@unl.edu> Date: Sun, 3 Apr 2022 17:22:52 -0500 Subject: [PATCH] Updated to work with SQLAlchemy 1.4 rules --- database.py | 25 +++++++++++++++++-------- installer.py | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/database.py b/database.py index 296b07d..695797e 100644 --- a/database.py +++ b/database.py @@ -52,10 +52,19 @@ class Person(Persisted): back_populates='reviewers') # If we want to be able to access the join table's pairs themselves, we write a standard one-to-many relationship # with extra information. - reviewerships = relationship('Reviewership', uselist=True, foreign_keys='[Reviewership.reviewer_id]', - back_populates='reviewer') - revieweeships = relationship('Reviewership', uselist=True, foreign_keys='[Reviewership.reviewee_id]', - back_populates='reviewee') + # (replace the reviewers & reviewees relationships on lines 45-52 with: + # reviewers = relationship('Person', uselist=True, secondary='reviewerships', + # primaryjoin='Reviewership.reviewee_id == Person.person_id', + # secondaryjoin='Reviewership.reviewer_id == Person.person_id', + # viewonly=True) + # reviewees = relationship('Person', uselist=True, secondary='reviewerships', + # primaryjoin='Reviewership.reviewer_id == Person.person_id', + # secondaryjoin='Reviewership.reviewee_id == Person.person_id', + # viewonly=True) + # reviewerships = relationship('Reviewership', uselist=True, foreign_keys='[Reviewership.reviewer_id]', + # back_populates='reviewer') + # revieweeships = relationship('Reviewership', uselist=True, foreign_keys='[Reviewership.reviewee_id]', + # back_populates='reviewee') class Reviewership(Persisted): @@ -64,10 +73,10 @@ class Reviewership(Persisted): reviewee_id = Column(Integer, ForeignKey('people.person_id', ondelete='CASCADE'), primary_key=True) # If we want to be able to access the related records from a join-table pairs, we write a standard many-to-one # relationship with extra information. - reviewer = relationship('Person', foreign_keys='[Reviewership.reviewer_id]', remote_side='[Person.person_id]', - back_populates='reviewerships') - reviewee = relationship('Person', foreign_keys='[Reviewership.reviewee_id]', remote_side='[Person.person_id]', - back_populates='revieweeships') + # reviewer = relationship('Person', foreign_keys='[Reviewership.reviewer_id]', remote_side='[Person.person_id]', + # back_populates='reviewerships') + # reviewee = relationship('Person', foreign_keys='[Reviewership.reviewee_id]', remote_side='[Person.person_id]', + # back_populates='revieweeships') class Database(object): diff --git a/installer.py b/installer.py index 572fb62..5d5eef5 100644 --- a/installer.py +++ b/installer.py @@ -19,7 +19,7 @@ def add_starter_data(session): def main(): try: - url = Database.construct_mysql_url('localhost', 3306, 'people', 'root', 'cse') + url = Database.construct_mysql_url('localhost', 3306, 'people', 'root', '') database = Database(url) database.ensure_tables_exist() print('Tables created.') -- GitLab