You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
4.9 KiB
117 lines
4.9 KiB
1 year ago
|
From 50b3b11ef9c30d4923c82949c66dc6fe3ed0047a Mon Sep 17 00:00:00 2001
|
||
|
From: Matthew Thode <mthode@mthode.org>
|
||
|
Date: Tue, 11 Apr 2023 23:46:27 -0500
|
||
|
Subject: [PATCH] make gertty work with sqlalchemy-2
|
||
|
|
||
|
Change-Id: I80c007af86cd7102c3c75963ad5b0a051dd9b541
|
||
|
Signed-off-by: Matthew Thode <mthode@mthode.org>
|
||
|
---
|
||
|
gertty/db.py | 41 +++++++++++++++++++++--------------------
|
||
|
1 file changed, 21 insertions(+), 20 deletions(-)
|
||
|
|
||
|
diff --git a/gertty/db.py b/gertty/db.py
|
||
|
index 92cc278..82cffaa 100644
|
||
|
--- a/gertty/db.py
|
||
|
+++ b/gertty/db.py
|
||
|
@@ -25,11 +25,12 @@ import six
|
||
|
import sqlalchemy
|
||
|
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, Boolean, DateTime, Text, UniqueConstraint
|
||
|
from sqlalchemy.schema import ForeignKey
|
||
|
-from sqlalchemy.orm import mapper, sessionmaker, relationship, scoped_session, joinedload
|
||
|
+from sqlalchemy.orm import registry, sessionmaker, relationship, scoped_session, joinedload
|
||
|
from sqlalchemy.orm.session import Session
|
||
|
from sqlalchemy.sql import exists
|
||
|
from sqlalchemy.sql.expression import and_
|
||
|
|
||
|
+mapper = registry()
|
||
|
metadata = MetaData()
|
||
|
project_table = Table(
|
||
|
'project', metadata,
|
||
|
@@ -713,8 +714,8 @@ class Check(object):
|
||
|
self.created = created
|
||
|
self.updated = updated
|
||
|
|
||
|
-mapper(Account, account_table)
|
||
|
-mapper(Project, project_table, properties=dict(
|
||
|
+mapper.map_imperatively(Account, account_table)
|
||
|
+mapper.map_imperatively(Project, project_table, properties=dict(
|
||
|
branches=relationship(Branch, backref='project',
|
||
|
order_by=branch_table.c.name,
|
||
|
cascade='all, delete-orphan'),
|
||
|
@@ -740,16 +741,16 @@ mapper(Project, project_table, properties=dict(
|
||
|
order_by=change_table.c.number,
|
||
|
),
|
||
|
))
|
||
|
-mapper(Branch, branch_table)
|
||
|
-mapper(Topic, topic_table, properties=dict(
|
||
|
+mapper.map_imperatively(Branch, branch_table)
|
||
|
+mapper.map_imperatively(Topic, topic_table, properties=dict(
|
||
|
projects=relationship(Project,
|
||
|
secondary=project_topic_table,
|
||
|
order_by=project_table.c.name,
|
||
|
viewonly=True),
|
||
|
project_topics=relationship(ProjectTopic),
|
||
|
))
|
||
|
-mapper(ProjectTopic, project_topic_table)
|
||
|
-mapper(Change, change_table, properties=dict(
|
||
|
+mapper.map_imperatively(ProjectTopic, project_topic_table)
|
||
|
+mapper.map_imperatively(Change, change_table, properties=dict(
|
||
|
owner=relationship(Account),
|
||
|
conflicts1=relationship(Change,
|
||
|
secondary=change_conflict_table,
|
||
|
@@ -787,7 +788,7 @@ mapper(Change, change_table, properties=dict(
|
||
|
order_by=(approval_table.c.category,
|
||
|
approval_table.c.value))
|
||
|
))
|
||
|
-mapper(Revision, revision_table, properties=dict(
|
||
|
+mapper.map_imperatively(Revision, revision_table, properties=dict(
|
||
|
messages=relationship(Message, backref='revision',
|
||
|
cascade='all, delete-orphan'),
|
||
|
files=relationship(File, backref='revision',
|
||
|
@@ -798,9 +799,9 @@ mapper(Revision, revision_table, properties=dict(
|
||
|
cascade='all, delete-orphan'),
|
||
|
|
||
|
))
|
||
|
-mapper(Message, message_table, properties=dict(
|
||
|
+mapper.map_imperatively(Message, message_table, properties=dict(
|
||
|
author=relationship(Account)))
|
||
|
-mapper(File, file_table, properties=dict(
|
||
|
+mapper.map_imperatively(File, file_table, properties=dict(
|
||
|
comments=relationship(Comment, backref='file',
|
||
|
order_by=(comment_table.c.line,
|
||
|
comment_table.c.created),
|
||
|
@@ -812,20 +813,20 @@ mapper(File, file_table, properties=dict(
|
||
|
comment_table.c.created)),
|
||
|
))
|
||
|
|
||
|
-mapper(Comment, comment_table, properties=dict(
|
||
|
+mapper.map_imperatively(Comment, comment_table, properties=dict(
|
||
|
author=relationship(Account)))
|
||
|
-mapper(Label, label_table)
|
||
|
-mapper(PermittedLabel, permitted_label_table)
|
||
|
-mapper(Approval, approval_table, properties=dict(
|
||
|
+mapper.map_imperatively(Label, label_table)
|
||
|
+mapper.map_imperatively(PermittedLabel, permitted_label_table)
|
||
|
+mapper.map_imperatively(Approval, approval_table, properties=dict(
|
||
|
reviewer=relationship(Account)))
|
||
|
-mapper(PendingCherryPick, pending_cherry_pick_table)
|
||
|
-mapper(SyncQuery, sync_query_table)
|
||
|
-mapper(Hashtag, hashtag_table)
|
||
|
-mapper(Server, server_table, properties=dict(
|
||
|
+mapper.map_imperatively(PendingCherryPick, pending_cherry_pick_table)
|
||
|
+mapper.map_imperatively(SyncQuery, sync_query_table)
|
||
|
+mapper.map_imperatively(Hashtag, hashtag_table)
|
||
|
+mapper.map_imperatively(Server, server_table, properties=dict(
|
||
|
own_account=relationship(Account)
|
||
|
))
|
||
|
-mapper(Checker, checker_table)
|
||
|
-mapper(Check, check_table, properties=dict(
|
||
|
+mapper.map_imperatively(Checker, checker_table)
|
||
|
+mapper.map_imperatively(Check, check_table, properties=dict(
|
||
|
checker=relationship(Checker)))
|
||
|
|
||
|
|
||
|
--
|
||
|
2.39.2
|
||
|
|