Skip to content

Commit 8c09c70

Browse files
committed
Fix DB models cross-references
1 parent b02263d commit 8c09c70

File tree

5 files changed

+11
-15
lines changed

5 files changed

+11
-15
lines changed

syncmaster/db/models/connection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class Connection(Base, ResourceMixin, TimestampMixin):
4141
type: Mapped[ConnectionType] = mapped_column(ChoiceType(ConnectionType, impl=String(32)), nullable=False)
4242
data: Mapped[dict[str, Any]] = mapped_column(JSON, nullable=False, default={})
4343

44-
group: Mapped[Group] = relationship("Group")
44+
group: Mapped[Group] = relationship()
4545

4646
search_vector: Mapped[str] = mapped_column(
4747
TSVECTOR,

syncmaster/db/models/group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class Group(Base, TimestampMixin):
7171
description: Mapped[str] = mapped_column(String(512), nullable=False, default="")
7272
owner_id: Mapped[int] = mapped_column(ForeignKey("user.id", ondelete="CASCADE"), nullable=False, index=True)
7373

74-
owner: Mapped[User] = relationship(User)
74+
owner: Mapped[User] = relationship(viewonly=True)
7575
search_vector: Mapped[str] = mapped_column(
7676
TSVECTOR,
7777
Computed(

syncmaster/db/models/queue.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class Queue(Base, ResourceMixin, TimestampMixin):
1515
name: Mapped[str] = mapped_column(String(128), nullable=False)
1616
slug: Mapped[str] = mapped_column(String(256), nullable=False, unique=True)
1717

18-
group: Mapped[Group] = relationship(Group)
18+
group: Mapped[Group] = relationship(viewonly=True)
1919

2020
search_vector: Mapped[str] = mapped_column(
2121
TSVECTOR,

syncmaster/db/models/run.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
from syncmaster.db.mixins import TimestampMixin
1414
from syncmaster.db.models.base import Base
15-
from syncmaster.db.models.group import Group
1615
from syncmaster.db.models.transfer import Transfer
1716

1817

@@ -66,8 +65,7 @@ class Run(Base, TimestampMixin):
6665
log_url: Mapped[str] = mapped_column(String(512), nullable=True)
6766
transfer_dump: Mapped[dict[str, Any]] = mapped_column(JSON, nullable=False, default={})
6867

69-
transfer: Mapped[Transfer] = relationship(Transfer)
70-
group: Mapped[Group] = relationship(Group)
68+
transfer: Mapped[Transfer] = relationship(viewonly=True)
7169

7270
def __repr__(self):
7371
return (

syncmaster/db/models/transfer.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# SPDX-License-Identifier: Apache-2.0
33
from __future__ import annotations
44

5-
from typing import TYPE_CHECKING, Any
5+
from typing import Any
66

77
from sqlalchemy import (
88
JSON,
@@ -19,11 +19,9 @@
1919

2020
from syncmaster.db.mixins import ResourceMixin, TimestampMixin
2121
from syncmaster.db.models.base import Base
22+
from syncmaster.db.models.connection import Connection
2223
from syncmaster.db.models.group import Group
23-
24-
if TYPE_CHECKING:
25-
from syncmaster.db.models.connection import Connection
26-
from syncmaster.db.models.queue import Queue
24+
from syncmaster.db.models.queue import Queue
2725

2826

2927
class Transfer(
@@ -61,10 +59,10 @@ class Transfer(
6159
nullable=False,
6260
)
6361

64-
group: Mapped[Group] = relationship(Group)
65-
source_connection: Mapped[Connection] = relationship(foreign_keys=source_connection_id)
66-
target_connection: Mapped[Connection] = relationship(foreign_keys=target_connection_id)
67-
queue: Mapped[Queue] = relationship(Queue)
62+
group: Mapped[Group] = relationship(viewonly=True)
63+
source_connection: Mapped[Connection] = relationship(foreign_keys=source_connection_id, viewonly=True)
64+
target_connection: Mapped[Connection] = relationship(foreign_keys=target_connection_id, viewonly=True)
65+
queue: Mapped[Queue] = relationship(viewonly=True)
6866

6967
search_vector: Mapped[str] = mapped_column(
7068
TSVECTOR,

0 commit comments

Comments
 (0)