@@ -110,6 +110,18 @@ async def test_fk_bad_null(self):
110
110
):
111
111
await self .init_for ("tests.models_fk_3" )
112
112
113
+ async def test_o2o_bad_on_delete (self ):
114
+ with self .assertRaisesRegex (
115
+ ConfigurationError , "on_delete can only be CASCADE, RESTRICT or SET_NULL"
116
+ ):
117
+ await self .init_for ("tests.models_o2o_2" )
118
+
119
+ async def test_o2o_bad_null (self ):
120
+ with self .assertRaisesRegex (
121
+ ConfigurationError , "If on_delete is SET_NULL, then field must have null=True set"
122
+ ):
123
+ await self .init_for ("tests.models_o2o_3" )
124
+
113
125
async def test_m2m_bad_model_name (self ):
114
126
with self .assertRaisesRegex (
115
127
ConfigurationError , 'Foreign key accepts model name in format "app.Model"'
@@ -155,6 +167,12 @@ async def test_schema(self):
155
167
) /* The TEAMS! */;
156
168
CREATE INDEX "idx_team_manager_676134" ON "team" ("manager_id", "key");
157
169
CREATE INDEX "idx_team_manager_ef8f69" ON "team" ("manager_id", "name");
170
+ CREATE TABLE "teamaddress" (
171
+ "city" VARCHAR(50) NOT NULL /* City */,
172
+ "country" VARCHAR(50) NOT NULL /* Country */,
173
+ "street" VARCHAR(128) NOT NULL /* Street Address */,
174
+ "team_id" VARCHAR(50) NOT NULL UNIQUE PRIMARY KEY REFERENCES "team" ("name") ON DELETE CASCADE
175
+ );
158
176
CREATE TABLE "tournament" (
159
177
"tid" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
160
178
"name" VARCHAR(100) NOT NULL /* Tournament name */,
@@ -172,6 +190,13 @@ async def test_schema(self):
172
190
CONSTRAINT "uid_event_name_c6f89f" UNIQUE ("name", "prize"),
173
191
CONSTRAINT "uid_event_tournam_a5b730" UNIQUE ("tournament_id", "key")
174
192
) /* This table contains a list of all the events */;
193
+ CREATE TABLE "venueinformation" (
194
+ "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
195
+ "name" VARCHAR(128) NOT NULL,
196
+ "capacity" INT NOT NULL,
197
+ "rent" REAL NOT NULL,
198
+ "team_id" VARCHAR(50) UNIQUE REFERENCES "team" ("name") ON DELETE SET NULL
199
+ );
175
200
CREATE TABLE "sometable_self" (
176
201
"backward_sts" INT NOT NULL REFERENCES "sometable" ("sometable_id") ON DELETE CASCADE,
177
202
"sts_forward" INT NOT NULL REFERENCES "sometable" ("sometable_id") ON DELETE CASCADE
@@ -219,6 +244,12 @@ async def test_schema_safe(self):
219
244
) /* The TEAMS! */;
220
245
CREATE INDEX IF NOT EXISTS "idx_team_manager_676134" ON "team" ("manager_id", "key");
221
246
CREATE INDEX IF NOT EXISTS "idx_team_manager_ef8f69" ON "team" ("manager_id", "name");
247
+ CREATE TABLE IF NOT EXISTS "teamaddress" (
248
+ "city" VARCHAR(50) NOT NULL /* City */,
249
+ "country" VARCHAR(50) NOT NULL /* Country */,
250
+ "street" VARCHAR(128) NOT NULL /* Street Address */,
251
+ "team_id" VARCHAR(50) NOT NULL UNIQUE PRIMARY KEY REFERENCES "team" ("name") ON DELETE CASCADE
252
+ );
222
253
CREATE TABLE IF NOT EXISTS "tournament" (
223
254
"tid" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
224
255
"name" VARCHAR(100) NOT NULL /* Tournament name */,
@@ -236,6 +267,13 @@ async def test_schema_safe(self):
236
267
CONSTRAINT "uid_event_name_c6f89f" UNIQUE ("name", "prize"),
237
268
CONSTRAINT "uid_event_tournam_a5b730" UNIQUE ("tournament_id", "key")
238
269
) /* This table contains a list of all the events */;
270
+ CREATE TABLE IF NOT EXISTS "venueinformation" (
271
+ "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
272
+ "name" VARCHAR(128) NOT NULL,
273
+ "capacity" INT NOT NULL,
274
+ "rent" REAL NOT NULL,
275
+ "team_id" VARCHAR(50) UNIQUE REFERENCES "team" ("name") ON DELETE SET NULL
276
+ );
239
277
CREATE TABLE IF NOT EXISTS "sometable_self" (
240
278
"backward_sts" INT NOT NULL REFERENCES "sometable" ("sometable_id") ON DELETE CASCADE,
241
279
"sts_forward" INT NOT NULL REFERENCES "sometable" ("sometable_id") ON DELETE CASCADE
@@ -349,6 +387,13 @@ async def test_schema(self):
349
387
KEY `idx_team_manager_676134` (`manager_id`, `key`),
350
388
KEY `idx_team_manager_ef8f69` (`manager_id`, `name`)
351
389
) CHARACTER SET utf8mb4 COMMENT='The TEAMS!';
390
+ CREATE TABLE `teamaddress` (
391
+ `city` VARCHAR(50) NOT NULL COMMENT 'City',
392
+ `country` VARCHAR(50) NOT NULL COMMENT 'Country',
393
+ `street` VARCHAR(128) NOT NULL COMMENT 'Street Address',
394
+ `team_id` VARCHAR(50) NOT NULL UNIQUE PRIMARY KEY,
395
+ CONSTRAINT `fk_teamaddr_team_1c78d737` FOREIGN KEY (`team_id`) REFERENCES `team` (`name`) ON DELETE CASCADE
396
+ ) CHARACTER SET utf8mb4;
352
397
CREATE TABLE `tournament` (
353
398
`tid` SMALLINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
354
399
`name` VARCHAR(100) NOT NULL COMMENT 'Tournament name',
@@ -367,6 +412,14 @@ async def test_schema(self):
367
412
UNIQUE KEY `uid_event_tournam_a5b730` (`tournament_id`, `key`),
368
413
CONSTRAINT `fk_event_tourname_51c2b82d` FOREIGN KEY (`tournament_id`) REFERENCES `tournament` (`tid`) ON DELETE CASCADE
369
414
) CHARACTER SET utf8mb4 COMMENT='This table contains a list of all the events';
415
+ CREATE TABLE `venueinformation` (
416
+ `id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
417
+ `name` VARCHAR(128) NOT NULL,
418
+ `capacity` INT NOT NULL,
419
+ `rent` DOUBLE NOT NULL,
420
+ `team_id` VARCHAR(50) UNIQUE,
421
+ CONSTRAINT `fk_venueinf_team_198af929` FOREIGN KEY (`team_id`) REFERENCES `team` (`name`) ON DELETE SET NULL
422
+ ) CHARACTER SET utf8mb4;
370
423
CREATE TABLE `sometable_self` (
371
424
`backward_sts` INT NOT NULL,
372
425
`sts_forward` INT NOT NULL,
@@ -423,6 +476,13 @@ async def test_schema_safe(self):
423
476
KEY `idx_team_manager_676134` (`manager_id`, `key`),
424
477
KEY `idx_team_manager_ef8f69` (`manager_id`, `name`)
425
478
) CHARACTER SET utf8mb4 COMMENT='The TEAMS!';
479
+ CREATE TABLE IF NOT EXISTS `teamaddress` (
480
+ `city` VARCHAR(50) NOT NULL COMMENT 'City',
481
+ `country` VARCHAR(50) NOT NULL COMMENT 'Country',
482
+ `street` VARCHAR(128) NOT NULL COMMENT 'Street Address',
483
+ `team_id` VARCHAR(50) NOT NULL UNIQUE PRIMARY KEY,
484
+ CONSTRAINT `fk_teamaddr_team_1c78d737` FOREIGN KEY (`team_id`) REFERENCES `team` (`name`) ON DELETE CASCADE
485
+ ) CHARACTER SET utf8mb4;
426
486
CREATE TABLE IF NOT EXISTS `tournament` (
427
487
`tid` SMALLINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
428
488
`name` VARCHAR(100) NOT NULL COMMENT 'Tournament name',
@@ -441,6 +501,14 @@ async def test_schema_safe(self):
441
501
UNIQUE KEY `uid_event_tournam_a5b730` (`tournament_id`, `key`),
442
502
CONSTRAINT `fk_event_tourname_51c2b82d` FOREIGN KEY (`tournament_id`) REFERENCES `tournament` (`tid`) ON DELETE CASCADE
443
503
) CHARACTER SET utf8mb4 COMMENT='This table contains a list of all the events';
504
+ CREATE TABLE IF NOT EXISTS `venueinformation` (
505
+ `id` INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
506
+ `name` VARCHAR(128) NOT NULL,
507
+ `capacity` INT NOT NULL,
508
+ `rent` DOUBLE NOT NULL,
509
+ `team_id` VARCHAR(50) UNIQUE,
510
+ CONSTRAINT `fk_venueinf_team_198af929` FOREIGN KEY (`team_id`) REFERENCES `team` (`name`) ON DELETE SET NULL
511
+ ) CHARACTER SET utf8mb4;
444
512
CREATE TABLE IF NOT EXISTS `sometable_self` (
445
513
`backward_sts` INT NOT NULL,
446
514
`sts_forward` INT NOT NULL,
@@ -541,6 +609,15 @@ async def test_schema(self):
541
609
CREATE INDEX "idx_team_manager_ef8f69" ON "team" ("manager_id", "name");
542
610
COMMENT ON COLUMN "team"."name" IS 'The TEAM name (and PK)';
543
611
COMMENT ON TABLE "team" IS 'The TEAMS!';
612
+ CREATE TABLE "teamaddress" (
613
+ "city" VARCHAR(50) NOT NULL,
614
+ "country" VARCHAR(50) NOT NULL,
615
+ "street" VARCHAR(128) NOT NULL,
616
+ "team_id" VARCHAR(50) NOT NULL UNIQUE PRIMARY KEY REFERENCES "team" ("name") ON DELETE CASCADE
617
+ );
618
+ COMMENT ON COLUMN "teamaddress"."city" IS 'City';
619
+ COMMENT ON COLUMN "teamaddress"."country" IS 'Country';
620
+ COMMENT ON COLUMN "teamaddress"."street" IS 'Street Address';
544
621
CREATE TABLE "tournament" (
545
622
"tid" SMALLSERIAL NOT NULL PRIMARY KEY,
546
623
"name" VARCHAR(100) NOT NULL,
@@ -565,6 +642,13 @@ async def test_schema(self):
565
642
COMMENT ON COLUMN "event"."token" IS 'Unique token';
566
643
COMMENT ON COLUMN "event"."tournament_id" IS 'FK to tournament';
567
644
COMMENT ON TABLE "event" IS 'This table contains a list of all the events';
645
+ CREATE TABLE "venueinformation" (
646
+ "id" SERIAL NOT NULL PRIMARY KEY,
647
+ "name" VARCHAR(128) NOT NULL,
648
+ "capacity" INT NOT NULL,
649
+ "rent" DOUBLE PRECISION NOT NULL,
650
+ "team_id" VARCHAR(50) UNIQUE REFERENCES "team" ("name") ON DELETE SET NULL
651
+ );
568
652
CREATE TABLE "sometable_self" (
569
653
"backward_sts" INT NOT NULL REFERENCES "sometable" ("sometable_id") ON DELETE CASCADE,
570
654
"sts_forward" INT NOT NULL REFERENCES "sometable" ("sometable_id") ON DELETE CASCADE
@@ -615,6 +699,15 @@ async def test_schema_safe(self):
615
699
CREATE INDEX IF NOT EXISTS "idx_team_manager_ef8f69" ON "team" ("manager_id", "name");
616
700
COMMENT ON COLUMN "team"."name" IS 'The TEAM name (and PK)';
617
701
COMMENT ON TABLE "team" IS 'The TEAMS!';
702
+ CREATE TABLE IF NOT EXISTS "teamaddress" (
703
+ "city" VARCHAR(50) NOT NULL,
704
+ "country" VARCHAR(50) NOT NULL,
705
+ "street" VARCHAR(128) NOT NULL,
706
+ "team_id" VARCHAR(50) NOT NULL UNIQUE PRIMARY KEY REFERENCES "team" ("name") ON DELETE CASCADE
707
+ );
708
+ COMMENT ON COLUMN "teamaddress"."city" IS 'City';
709
+ COMMENT ON COLUMN "teamaddress"."country" IS 'Country';
710
+ COMMENT ON COLUMN "teamaddress"."street" IS 'Street Address';
618
711
CREATE TABLE IF NOT EXISTS "tournament" (
619
712
"tid" SMALLSERIAL NOT NULL PRIMARY KEY,
620
713
"name" VARCHAR(100) NOT NULL,
@@ -639,6 +732,13 @@ async def test_schema_safe(self):
639
732
COMMENT ON COLUMN "event"."token" IS 'Unique token';
640
733
COMMENT ON COLUMN "event"."tournament_id" IS 'FK to tournament';
641
734
COMMENT ON TABLE "event" IS 'This table contains a list of all the events';
735
+ CREATE TABLE IF NOT EXISTS "venueinformation" (
736
+ "id" SERIAL NOT NULL PRIMARY KEY,
737
+ "name" VARCHAR(128) NOT NULL,
738
+ "capacity" INT NOT NULL,
739
+ "rent" DOUBLE PRECISION NOT NULL,
740
+ "team_id" VARCHAR(50) UNIQUE REFERENCES "team" ("name") ON DELETE SET NULL
741
+ );
642
742
CREATE TABLE IF NOT EXISTS "sometable_self" (
643
743
"backward_sts" INT NOT NULL REFERENCES "sometable" ("sometable_id") ON DELETE CASCADE,
644
744
"sts_forward" INT NOT NULL REFERENCES "sometable" ("sometable_id") ON DELETE CASCADE
0 commit comments