aboutsummaryrefslogtreecommitdiffstats
path: root/database.py
diff options
context:
space:
mode:
Diffstat (limited to 'database.py')
-rw-r--r--database.py21
1 files changed, 13 insertions, 8 deletions
diff --git a/database.py b/database.py
index 746078e..2d3d070 100644
--- a/database.py
+++ b/database.py
@@ -58,7 +58,11 @@ class Upload(Base):
readonly = db.Column(db.Boolean, nullable=True, default=bool)
version = db.Column(db.Unicode(10), nullable=False, default=str)
- author = relationship("User")
+ author = relationship("User", lazy="subquery")
+
+ files = relationship("File", back_populates="upload", lazy="subquery")
+ comments = relationship("Comment", back_populates="upload", lazy="subquery")
+ votes = relationship("Vote", back_populates="upload", lazy="subquery")
def json(self):
return {
@@ -84,7 +88,7 @@ class File(Base):
upload_id = db.Column(Types.ObjectId, db.ForeignKey("uploads.id"))
download_url = db.Column(db.Text)
- upload = relationship("Upload")
+ upload = relationship("Upload", back_populates="files", lazy="subquery")
def json(self):
return {
@@ -111,8 +115,9 @@ class Comment(Base):
updated_at = db.Column(db.DateTime, nullable=False, default=datetime.now, onupdate=datetime.now)
body = db.Column(db.UnicodeText, nullable=False)
- author = relationship("User")
- upload = relationship("Upload")
+ author = relationship("User", lazy="subquery")
+ upload = relationship("Upload", back_populates="comments", lazy="subquery")
+ votes = relationship("CommentVote", back_populates="comment", lazy="subquery")
def json(self):
return {
@@ -131,8 +136,8 @@ class Vote(Base):
upload_id = db.Column(Types.ObjectId, db.ForeignKey("uploads.id"))
impact = db.Column(db.Integer, nullable=False)
- author = relationship("User")
- upload = relationship("Upload")
+ author = relationship("User", lazy="subquery")
+ upload = relationship("Upload", back_populates="votes", lazy="subquery")
def json(self):
return {
@@ -149,8 +154,8 @@ class CommentVote(Base):
comment_id = db.Column(Types.ObjectId, db.ForeignKey("comments.id"))
impact = db.Column(db.Integer, nullable=False)
- author = relationship("User")
- comment = relationship("Comment")
+ author = relationship("User", lazy="subquery")
+ comment = relationship("Comment", back_populates="votes", lazy="subquery")
def json(self):
return {