Skip to content

Commit e517a43

Browse files
author
Andrey Kirov
committed
on_delete is mandatory.
1 parent 587d8a0 commit e517a43

26 files changed

+554
-660
lines changed

poetry.lock

Lines changed: 406 additions & 571 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ aiomysql = { version = "*", optional = true }
4848
asyncmy = { version = "^0.2.8", optional = true, allow-prereleases = true }
4949
psycopg = { extras = ["pool", "binary"], version = "^3.0.12", optional = true }
5050
asyncodbc = { version = "^0.1.1", optional = true }
51+
importlib-metadata = "^8.6.1"
5152

5253
[tool.poetry.group.dev.dependencies]
5354
# Linter tools

tests/model_setup/model_bad_rel1.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"""
44

55
from tortoise import fields
6+
from tortoise.fields import CASCADE
67
from tortoise.models import Model
78

89

@@ -12,5 +13,5 @@ class Tournament(Model):
1213

1314
class Event(Model):
1415
tournament: fields.ForeignKeyRelation[Tournament] = fields.ForeignKeyField(
15-
"app.Tournament", related_name="events"
16+
"app.Tournament", related_name="events", on_delete=CASCADE
1617
)

tests/model_setup/model_bad_rel2.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from typing import Any
99

1010
from tortoise import fields
11+
from tortoise.fields import CASCADE
1112
from tortoise.models import Model
1213

1314

@@ -17,5 +18,5 @@ class Tournament(Model):
1718

1819
class Event(Model):
1920
tournament: fields.ForeignKeyRelation[Any] = fields.ForeignKeyField(
20-
"models.Tour", related_name="events"
21+
"models.Tour", related_name="events", on_delete=CASCADE
2122
)

tests/model_setup/model_bad_rel3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55

66
from tortoise import fields
7+
from tortoise.fields import CASCADE
78
from tortoise.models import Model
89

910

@@ -13,5 +14,5 @@ class Tournament(Model):
1314

1415
class Event(Model):
1516
tournament: fields.ForeignKeyRelation[Tournament] = fields.ForeignKeyField(
16-
"Tournament", related_name="events"
17+
"Tournament", related_name="events", on_delete=CASCADE
1718
)

tests/model_setup/model_bad_rel4.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55

66
from tortoise import fields
7+
from tortoise.fields import CASCADE
78
from tortoise.models import Model
89

910

@@ -13,5 +14,5 @@ class Tournament(Model):
1314

1415
class Event(Model):
1516
tournament: fields.ForeignKeyRelation[Tournament] = fields.ForeignKeyField(
16-
"models.app.Tournament", related_name="events"
17+
"models.app.Tournament", related_name="events", on_delete=CASCADE
1718
)

tests/model_setup/model_bad_rel5.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55

66
from tortoise import fields
7+
from tortoise.fields import CASCADE
78
from tortoise.models import Model
89

910

@@ -12,4 +13,6 @@ class Tournament(Model):
1213

1314

1415
class Event(Model):
15-
tournament: fields.OneToOneRelation[Tournament] = fields.OneToOneField("Tournament")
16+
tournament: fields.OneToOneRelation[Tournament] = fields.OneToOneField(
17+
"Tournament", on_delete=CASCADE
18+
)

tests/model_setup/model_bad_rel6.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55

66
from tortoise import fields
7+
from tortoise.fields import CASCADE
78
from tortoise.models import Model
89

910

@@ -13,5 +14,5 @@ class Tournament(Model):
1314

1415
class Event(Model):
1516
tournament: fields.ForeignKeyRelation[Tournament] = fields.ForeignKeyField(
16-
"models.Tournament", related_name="events", to_field="uuid"
17+
"models.Tournament", related_name="events", to_field="uuid", on_delete=CASCADE
1718
)

tests/model_setup/model_bad_rel7.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55

66
from tortoise import fields
7+
from tortoise.fields import CASCADE
78
from tortoise.models import Model
89

910

@@ -13,5 +14,5 @@ class Tournament(Model):
1314

1415
class Event(Model):
1516
tournament: fields.ForeignKeyRelation[Tournament] = fields.ForeignKeyField(
16-
"models.Tournament", related_name="events", to_field="uuids"
17+
"models.Tournament", related_name="events", to_field="uuids", on_delete=CASCADE
1718
)

tests/model_setup/model_bad_rel8.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55

66
from tortoise import fields
7+
from tortoise.fields import CASCADE
78
from tortoise.models import Model
89

910

@@ -13,5 +14,5 @@ class Tournament(Model):
1314

1415
class Event(Model):
1516
tournament: fields.OneToOneRelation[Tournament] = fields.OneToOneField(
16-
"models.Tournament", related_name="events", to_field="uuid"
17+
"models.Tournament", related_name="events", to_field="uuid", on_delete=CASCADE
1718
)

tests/model_setup/model_bad_rel9.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"""
55

66
from tortoise import fields
7+
from tortoise.fields import CASCADE
78
from tortoise.models import Model
89

910

@@ -13,5 +14,5 @@ class Tournament(Model):
1314

1415
class Event(Model):
1516
tournament: fields.OneToOneRelation[Tournament] = fields.OneToOneField(
16-
"models.Tournament", related_name="events", to_field="uuids"
17+
"models.Tournament", related_name="events", to_field="uuids", on_delete=CASCADE
1718
)

tests/model_setup/models_dup1.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"""
44

55
from tortoise import fields
6+
from tortoise.fields import CASCADE
67
from tortoise.models import Model
78

89

@@ -12,11 +13,11 @@ class Tournament(Model):
1213

1314
class Event(Model):
1415
tournament: fields.ForeignKeyRelation[Tournament] = fields.ForeignKeyField(
15-
"models.Tournament", related_name="events"
16+
"models.Tournament", related_name="events", on_delete=CASCADE
1617
)
1718

1819

1920
class Party(Model):
2021
tournament: fields.ForeignKeyRelation[Tournament] = fields.ForeignKeyField(
21-
"models.Tournament", related_name="events"
22+
"models.Tournament", related_name="events", on_delete=CASCADE
2223
)

tests/model_setup/models_dup2.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@
33
"""
44

55
from tortoise import fields
6+
from tortoise.fields import CASCADE
67
from tortoise.models import Model
78

89

910
class Event(Model):
1011
participants: fields.ManyToManyRelation["Team"] = fields.ManyToManyField(
11-
"models.Team", related_name="events", through="event_team"
12+
"models.Team", related_name="events", through="event_team", on_delete=CASCADE
1213
)
1314

1415

1516
class Party(Model):
1617
participants: fields.ManyToManyRelation["Team"] = fields.ManyToManyField(
17-
"models.Team", related_name="events", through="event_team"
18+
"models.Team", related_name="events", through="event_team", on_delete=CASCADE
1819
)
1920

2021

tests/model_setup/models_dup3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"""
44

55
from tortoise import fields
6+
from tortoise.fields import CASCADE
67
from tortoise.models import Model
78

89

@@ -13,5 +14,5 @@ class Tournament(Model):
1314

1415
class Event(Model):
1516
tournament: fields.OneToOneRelation[Tournament] = fields.OneToOneField(
16-
"models.Tournament", related_name="event"
17+
"models.Tournament", related_name="event", on_delete=CASCADE
1718
)

tests/schema/models_cyclic.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,23 @@
33
"""
44

55
from tortoise import fields
6+
from tortoise.fields import CASCADE
67
from tortoise.models import Model
78

89

910
class One(Model):
1011
tournament: fields.ForeignKeyRelation["Two"] = fields.ForeignKeyField(
11-
"models.Two", related_name="events"
12+
"models.Two", related_name="events", on_delete=CASCADE
1213
)
1314

1415

1516
class Two(Model):
1617
tournament: fields.ForeignKeyRelation["Three"] = fields.ForeignKeyField(
17-
"models.Three", related_name="events"
18+
"models.Three", related_name="events", on_delete=CASCADE
1819
)
1920

2021

2122
class Three(Model):
2223
tournament: fields.ForeignKeyRelation[One] = fields.ForeignKeyField(
23-
"models.One", related_name="events"
24+
"models.One", related_name="events", on_delete=CASCADE
2425
)

tests/schema/models_fk_1.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
from typing import Any
88

99
from tortoise import fields
10+
from tortoise.fields import CASCADE
1011
from tortoise.models import Model
1112

1213

1314
class One(Model):
14-
tournament: fields.ForeignKeyRelation[Any] = fields.ForeignKeyField("moo")
15+
tournament: fields.ForeignKeyRelation[Any] = fields.ForeignKeyField("moo", on_delete=CASCADE)

tests/schema/models_m2m_1.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
from tests.schema.models_cyclic import Two
66
from tortoise import fields
7+
from tortoise.fields import CASCADE
78
from tortoise.models import Model
89

910

1011
class One(Model):
11-
tournament: fields.ManyToManyRelation[Two] = fields.ManyToManyField("Two")
12+
tournament: fields.ManyToManyRelation[Two] = fields.ManyToManyField("Two", on_delete=CASCADE)

tests/schema/models_m2m_2.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from __future__ import annotations
66

77
from tortoise import Model, fields
8+
from tortoise.fields import CASCADE
89

910

1011
class One(Model):
@@ -16,5 +17,5 @@ class Two(Model):
1617

1718

1819
class Three(Model):
19-
ones: fields.ManyToManyRelation[One] = fields.ManyToManyField("models.One")
20-
twos: fields.ManyToManyRelation[Two] = fields.ManyToManyField("models.Two")
20+
ones: fields.ManyToManyRelation[One] = fields.ManyToManyField("models.One", on_delete=CASCADE)
21+
twos: fields.ManyToManyRelation[Two] = fields.ManyToManyField("models.Two", on_delete=CASCADE)

tests/schema/models_no_auto_create_m2m.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""
44

55
from tortoise import fields
6-
from tortoise.fields import SET_NULL
6+
from tortoise.fields import CASCADE, SET_NULL
77
from tortoise.models import Model
88

99

@@ -20,7 +20,10 @@ class Event(Model):
2020
id = fields.BigIntField(primary_key=True, description="Event ID")
2121
name = fields.TextField()
2222
tournament: fields.ForeignKeyRelation[Tournament] = fields.ForeignKeyField(
23-
"models.Tournament", related_name="events", description="FK to tournament"
23+
"models.Tournament",
24+
related_name="events",
25+
description="FK to tournament",
26+
on_delete=CASCADE,
2427
)
2528
participants: fields.ManyToManyRelation["Team"] = fields.ManyToManyField(
2629
"models.Team",
@@ -41,10 +44,10 @@ class Meta:
4144

4245
class TeamEvent(Model):
4346
team: fields.ForeignKeyRelation["Team"] = fields.ForeignKeyField(
44-
"models.Team", related_name="teams"
47+
"models.Team", related_name="teams", on_delete=CASCADE
4548
)
4649
event: fields.ForeignKeyRelation[Event] = fields.ForeignKeyField(
47-
"models.Event", related_name="events"
50+
"models.Event", related_name="events", on_delete=CASCADE
4851
)
4952
score = fields.IntField()
5053

@@ -58,10 +61,12 @@ class Team(Model):
5861
name = fields.CharField(max_length=50, primary_key=True, description="The TEAM name (and PK)")
5962
key = fields.IntField()
6063
manager: fields.ForeignKeyNullableRelation["Team"] = fields.ForeignKeyField(
61-
"models.Team", related_name="team_members", null=True
64+
"models.Team", related_name="team_members", null=True, on_delete=CASCADE
6265
)
6366
talks_to: fields.ManyToManyRelation["Team"] = fields.ManyToManyField(
64-
"models.Team", related_name="gets_talked_to"
67+
"models.Team",
68+
related_name="gets_talked_to",
69+
on_delete=CASCADE,
6570
)
6671

6772
class Meta:

tests/schema/models_no_db_constraint.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"""
44

55
from tortoise import fields
6+
from tortoise.fields import CASCADE
67
from tortoise.models import Model
78

89

@@ -23,13 +24,15 @@ class Event(Model):
2324
db_constraint=False,
2425
related_name="events",
2526
description="FK to tournament",
27+
on_delete=CASCADE,
2628
)
2729
participants: fields.ManyToManyRelation["Team"] = fields.ManyToManyField(
2830
"models.Team",
2931
db_constraint=False,
3032
related_name="events",
3133
through="teamevents",
3234
description="How participants relate",
35+
on_delete=CASCADE,
3336
)
3437
modified = fields.DatetimeField(auto_now=True)
3538
prize = fields.DecimalField(max_digits=10, decimal_places=2, null=True)
@@ -45,10 +48,14 @@ class Team(Model):
4548
name = fields.CharField(max_length=50, primary_key=True, description="The TEAM name (and PK)")
4649
key = fields.IntField()
4750
manager: fields.ForeignKeyNullableRelation["Team"] = fields.ForeignKeyField(
48-
"models.Team", db_constraint=False, related_name="team_members", null=True
51+
"models.Team",
52+
db_constraint=False,
53+
related_name="team_members",
54+
null=True,
55+
on_delete=CASCADE,
4956
)
5057
talks_to: fields.ManyToManyRelation["Team"] = fields.ManyToManyField(
51-
"models.Team", db_constraint=False, related_name="gets_talked_to"
58+
"models.Team", db_constraint=False, related_name="gets_talked_to", on_delete=CASCADE
5259
)
5360

5461
class Meta:

0 commit comments

Comments
 (0)