From f95100623f86f389c5d9d39987c44807b7f01fb0 Mon Sep 17 00:00:00 2001 From: FranGuam Date: Wed, 3 Apr 2024 09:56:35 +0800 Subject: [PATCH 1/2] fix(contest): one map for a round --- metadata/tables.yaml | 82 ++++++++++++------- .../down.sql | 2 + .../up.sql | 2 + .../down.sql | 1 + .../up.sql | 1 + .../down.sql | 1 + .../up.sql | 1 + .../down.sql | 4 + .../up.sql | 2 + .../down.sql | 1 + .../up.sql | 5 ++ .../down.sql | 3 + .../up.sql | 1 + 13 files changed, 78 insertions(+), 28 deletions(-) create mode 100644 migrations/1712107844670_alter_table_public_contest_round_alter_column_maps/down.sql create mode 100644 migrations/1712107844670_alter_table_public_contest_round_alter_column_maps/up.sql create mode 100644 migrations/1712107860339_alter_table_public_contest_round_alter_column_map_id/down.sql create mode 100644 migrations/1712107860339_alter_table_public_contest_round_alter_column_map_id/up.sql create mode 100644 migrations/1712109032584_alter_table_public_contest_round_alter_column_map_id/down.sql create mode 100644 migrations/1712109032584_alter_table_public_contest_round_alter_column_map_id/up.sql create mode 100644 migrations/1712109068116_alter_table_public_contest_round_add_column_map_id/down.sql create mode 100644 migrations/1712109068116_alter_table_public_contest_round_add_column_map_id/up.sql create mode 100644 migrations/1712109092044_set_fk_public_contest_round_map_id/down.sql create mode 100644 migrations/1712109092044_set_fk_public_contest_round_map_id/up.sql create mode 100644 migrations/1712109257893_alter_table_public_contest_round_drop_column_maps/down.sql create mode 100644 migrations/1712109257893_alter_table_public_contest_round_drop_column_maps/up.sql diff --git a/metadata/tables.yaml b/metadata/tables.yaml index 34c90b5..cd5b5b3 100644 --- a/metadata/tables.yaml +++ b/metadata/tables.yaml @@ -513,6 +513,13 @@ table: name: contest_room schema: public + - name: contest_rounds + using: + foreign_key_constraint_on: + column: map_id + table: + name: contest_round + schema: public insert_permissions: - role: counselor permission: @@ -1131,6 +1138,9 @@ - name: contest using: foreign_key_constraint_on: contest_id + - name: contest_map + using: + foreign_key_constraint_on: map_id array_relationships: - name: contest_round_rooms using: @@ -1149,9 +1159,9 @@ _eq: X-Hasura-User-Id columns: - contest_id - - round_id + - map_id - name - - maps + - round_id - role: student permission: check: @@ -1161,9 +1171,9 @@ _eq: X-Hasura-User-Id columns: - contest_id - - round_id + - map_id - name - - maps + - round_id - role: teacher permission: check: @@ -1173,9 +1183,9 @@ _eq: X-Hasura-User-Id columns: - contest_id - - round_id + - map_id - name - - maps + - round_id - role: user permission: check: @@ -1185,95 +1195,111 @@ _eq: X-Hasura-User-Id columns: - contest_id - - round_id + - map_id - name - - maps + - round_id select_permissions: - role: counselor permission: columns: - contest_id - - round_id + - map_id - name - - maps + - round_id filter: {} - role: student permission: columns: - contest_id - - round_id + - map_id - name - - maps + - round_id filter: {} - role: teacher permission: columns: - contest_id - - round_id + - map_id - name - - maps + - round_id filter: {} - role: user permission: columns: - contest_id - - round_id + - map_id - name - - maps + - round_id filter: {} update_permissions: - role: counselor permission: columns: - contest_id - - round_id + - map_id - name - - maps + - round_id filter: contest: contest_managers: user_uuid: _eq: X-Hasura-User-Id - check: null + check: + contest: + contest_managers: + user_uuid: + _eq: X-Hasura-User-Id - role: student permission: columns: - contest_id - - round_id + - map_id - name - - maps + - round_id filter: contest: contest_managers: user_uuid: _eq: X-Hasura-User-Id - check: null + check: + contest: + contest_managers: + user_uuid: + _eq: X-Hasura-User-Id - role: teacher permission: columns: - contest_id - - round_id + - map_id - name - - maps + - round_id filter: contest: contest_managers: user_uuid: _eq: X-Hasura-User-Id - check: null + check: + contest: + contest_managers: + user_uuid: + _eq: X-Hasura-User-Id - role: user permission: columns: - contest_id - - round_id + - map_id - name - - maps + - round_id filter: contest: contest_managers: user_uuid: _eq: X-Hasura-User-Id - check: null + check: + contest: + contest_managers: + user_uuid: + _eq: X-Hasura-User-Id delete_permissions: - role: counselor permission: diff --git a/migrations/1712107844670_alter_table_public_contest_round_alter_column_maps/down.sql b/migrations/1712107844670_alter_table_public_contest_round_alter_column_maps/down.sql new file mode 100644 index 0000000..3faec61 --- /dev/null +++ b/migrations/1712107844670_alter_table_public_contest_round_alter_column_maps/down.sql @@ -0,0 +1,2 @@ +alter table "public"."contest_round" rename column "map_id" to "maps"; +alter table "public"."contest_round" alter column "maps" set not null; diff --git a/migrations/1712107844670_alter_table_public_contest_round_alter_column_maps/up.sql b/migrations/1712107844670_alter_table_public_contest_round_alter_column_maps/up.sql new file mode 100644 index 0000000..663369a --- /dev/null +++ b/migrations/1712107844670_alter_table_public_contest_round_alter_column_maps/up.sql @@ -0,0 +1,2 @@ +alter table "public"."contest_round" alter column "maps" drop not null; +alter table "public"."contest_round" rename column "maps" to "map_id"; diff --git a/migrations/1712107860339_alter_table_public_contest_round_alter_column_map_id/down.sql b/migrations/1712107860339_alter_table_public_contest_round_alter_column_map_id/down.sql new file mode 100644 index 0000000..2df0220 --- /dev/null +++ b/migrations/1712107860339_alter_table_public_contest_round_alter_column_map_id/down.sql @@ -0,0 +1 @@ +alter table "public"."contest_round" alter column "map_id" set default '[]'::text; diff --git a/migrations/1712107860339_alter_table_public_contest_round_alter_column_map_id/up.sql b/migrations/1712107860339_alter_table_public_contest_round_alter_column_map_id/up.sql new file mode 100644 index 0000000..5605311 --- /dev/null +++ b/migrations/1712107860339_alter_table_public_contest_round_alter_column_map_id/up.sql @@ -0,0 +1 @@ +ALTER TABLE "public"."contest_round" ALTER COLUMN "map_id" drop default; diff --git a/migrations/1712109032584_alter_table_public_contest_round_alter_column_map_id/down.sql b/migrations/1712109032584_alter_table_public_contest_round_alter_column_map_id/down.sql new file mode 100644 index 0000000..b8c6781 --- /dev/null +++ b/migrations/1712109032584_alter_table_public_contest_round_alter_column_map_id/down.sql @@ -0,0 +1 @@ +alter table "public"."contest_round" rename column "maps" to "map_id"; diff --git a/migrations/1712109032584_alter_table_public_contest_round_alter_column_map_id/up.sql b/migrations/1712109032584_alter_table_public_contest_round_alter_column_map_id/up.sql new file mode 100644 index 0000000..560f123 --- /dev/null +++ b/migrations/1712109032584_alter_table_public_contest_round_alter_column_map_id/up.sql @@ -0,0 +1 @@ +alter table "public"."contest_round" rename column "map_id" to "maps"; diff --git a/migrations/1712109068116_alter_table_public_contest_round_add_column_map_id/down.sql b/migrations/1712109068116_alter_table_public_contest_round_add_column_map_id/down.sql new file mode 100644 index 0000000..466c4ec --- /dev/null +++ b/migrations/1712109068116_alter_table_public_contest_round_add_column_map_id/down.sql @@ -0,0 +1,4 @@ +-- Could not auto-generate a down migration. +-- Please write an appropriate down migration for the SQL below: +-- alter table "public"."contest_round" add column "map_id" uuid +-- null; diff --git a/migrations/1712109068116_alter_table_public_contest_round_add_column_map_id/up.sql b/migrations/1712109068116_alter_table_public_contest_round_add_column_map_id/up.sql new file mode 100644 index 0000000..bfa0ed7 --- /dev/null +++ b/migrations/1712109068116_alter_table_public_contest_round_add_column_map_id/up.sql @@ -0,0 +1,2 @@ +alter table "public"."contest_round" add column "map_id" uuid + null; diff --git a/migrations/1712109092044_set_fk_public_contest_round_map_id/down.sql b/migrations/1712109092044_set_fk_public_contest_round_map_id/down.sql new file mode 100644 index 0000000..1bb687b --- /dev/null +++ b/migrations/1712109092044_set_fk_public_contest_round_map_id/down.sql @@ -0,0 +1 @@ +alter table "public"."contest_round" drop constraint "contest_round_map_id_fkey"; diff --git a/migrations/1712109092044_set_fk_public_contest_round_map_id/up.sql b/migrations/1712109092044_set_fk_public_contest_round_map_id/up.sql new file mode 100644 index 0000000..9ffbb5b --- /dev/null +++ b/migrations/1712109092044_set_fk_public_contest_round_map_id/up.sql @@ -0,0 +1,5 @@ +alter table "public"."contest_round" + add constraint "contest_round_map_id_fkey" + foreign key ("map_id") + references "public"."contest_map" + ("map_id") on update restrict on delete set null; diff --git a/migrations/1712109257893_alter_table_public_contest_round_drop_column_maps/down.sql b/migrations/1712109257893_alter_table_public_contest_round_drop_column_maps/down.sql new file mode 100644 index 0000000..bbf017c --- /dev/null +++ b/migrations/1712109257893_alter_table_public_contest_round_drop_column_maps/down.sql @@ -0,0 +1,3 @@ +comment on column "public"."contest_round"."maps" is E'正式比赛的每轮(初赛、决赛)信息'; +alter table "public"."contest_round" alter column "maps" drop not null; +alter table "public"."contest_round" add column "maps" text; diff --git a/migrations/1712109257893_alter_table_public_contest_round_drop_column_maps/up.sql b/migrations/1712109257893_alter_table_public_contest_round_drop_column_maps/up.sql new file mode 100644 index 0000000..1aaf512 --- /dev/null +++ b/migrations/1712109257893_alter_table_public_contest_round_drop_column_maps/up.sql @@ -0,0 +1 @@ +alter table "public"."contest_round" drop column "maps" cascade; From e72a56ac0c49dcaa24a674c064b22048366da657 Mon Sep 17 00:00:00 2001 From: FranGuam Date: Wed, 3 Apr 2024 10:10:14 +0800 Subject: [PATCH 2/2] fix(contest): one player a row in `contest_player` --- metadata/tables.yaml | 56 +++++++++++-------- .../down.sql | 1 + .../up.sql | 1 + .../down.sql | 3 + .../up.sql | 1 + .../down.sql | 4 ++ .../up.sql | 6 ++ .../down.sql | 1 + .../up.sql | 1 + 9 files changed, 50 insertions(+), 24 deletions(-) create mode 100644 migrations/1712109432336_alter_table_public_contest_player_alter_column_players_label/down.sql create mode 100644 migrations/1712109432336_alter_table_public_contest_player_alter_column_players_label/up.sql create mode 100644 migrations/1712109496949_alter_table_public_contest_player_drop_column_player_num/down.sql create mode 100644 migrations/1712109496949_alter_table_public_contest_player_drop_column_player_num/up.sql create mode 100644 migrations/1712109779166_modify_primarykey_public_contest_player/down.sql create mode 100644 migrations/1712109779166_modify_primarykey_public_contest_player/up.sql create mode 100644 migrations/1712110053836_alter_table_public_contest_player_alter_column_roles_available/down.sql create mode 100644 migrations/1712110053836_alter_table_public_contest_player_alter_column_roles_available/up.sql diff --git a/metadata/tables.yaml b/metadata/tables.yaml index cd5b5b3..5adfce7 100644 --- a/metadata/tables.yaml +++ b/metadata/tables.yaml @@ -965,38 +965,34 @@ - role: counselor permission: columns: - - player_num - - players_label + - contest_id + - player_label - roles_available - team_label - - contest_id filter: {} - role: student permission: columns: - - player_num - - players_label + - contest_id + - player_label - roles_available - team_label - - contest_id filter: {} - role: teacher permission: columns: - - player_num - - players_label + - contest_id + - player_label - roles_available - team_label - - contest_id filter: {} - role: user permission: columns: - - player_num - - players_label + - contest_id + - player_label - roles_available - team_label - - contest_id filter: {} - table: name: contest_room @@ -2048,9 +2044,10 @@ user_uuid: _eq: X-Hasura-User-Id columns: - - team_id - player + - role - code_id + - team_id - role: student permission: check: @@ -2059,9 +2056,10 @@ user_uuid: _eq: X-Hasura-User-Id columns: - - team_id - player + - role - code_id + - team_id - role: teacher permission: check: @@ -2070,9 +2068,10 @@ user_uuid: _eq: X-Hasura-User-Id columns: - - team_id - player + - role - code_id + - team_id - role: user permission: check: @@ -2081,16 +2080,18 @@ user_uuid: _eq: X-Hasura-User-Id columns: - - team_id - player + - role - code_id + - team_id select_permissions: - role: counselor permission: columns: - - team_id - player + - role - code_id + - team_id filter: contest_team: contest_team_members: @@ -2099,9 +2100,10 @@ - role: student permission: columns: - - team_id - player + - role - code_id + - team_id filter: contest_team: contest_team_members: @@ -2110,9 +2112,10 @@ - role: teacher permission: columns: - - team_id - player + - role - code_id + - team_id filter: contest_team: contest_team_members: @@ -2121,9 +2124,10 @@ - role: user permission: columns: - - team_id - player + - role - code_id + - team_id filter: contest_team: contest_team_members: @@ -2133,9 +2137,10 @@ - role: counselor permission: columns: - - team_id - player + - role - code_id + - team_id filter: contest_team: contest_team_members: @@ -2149,9 +2154,10 @@ - role: student permission: columns: - - team_id - player + - role - code_id + - team_id filter: contest_team: contest_team_members: @@ -2165,9 +2171,10 @@ - role: teacher permission: columns: - - team_id - player + - role - code_id + - team_id filter: contest_team: contest_team_members: @@ -2181,9 +2188,10 @@ - role: user permission: columns: - - team_id - player + - role - code_id + - team_id filter: contest_team: contest_team_members: diff --git a/migrations/1712109432336_alter_table_public_contest_player_alter_column_players_label/down.sql b/migrations/1712109432336_alter_table_public_contest_player_alter_column_players_label/down.sql new file mode 100644 index 0000000..983e4b9 --- /dev/null +++ b/migrations/1712109432336_alter_table_public_contest_player_alter_column_players_label/down.sql @@ -0,0 +1 @@ +alter table "public"."contest_player" rename column "player_label" to "players_label"; diff --git a/migrations/1712109432336_alter_table_public_contest_player_alter_column_players_label/up.sql b/migrations/1712109432336_alter_table_public_contest_player_alter_column_players_label/up.sql new file mode 100644 index 0000000..5115390 --- /dev/null +++ b/migrations/1712109432336_alter_table_public_contest_player_alter_column_players_label/up.sql @@ -0,0 +1 @@ +alter table "public"."contest_player" rename column "players_label" to "player_label"; diff --git a/migrations/1712109496949_alter_table_public_contest_player_drop_column_player_num/down.sql b/migrations/1712109496949_alter_table_public_contest_player_drop_column_player_num/down.sql new file mode 100644 index 0000000..ed53378 --- /dev/null +++ b/migrations/1712109496949_alter_table_public_contest_player_drop_column_player_num/down.sql @@ -0,0 +1,3 @@ +comment on column "public"."contest_player"."player_num" is E'记录每个比赛可以允许几队、每队有几个玩家、每个玩家可以选择哪些角色'; +alter table "public"."contest_player" alter column "player_num" drop not null; +alter table "public"."contest_player" add column "player_num" int4; diff --git a/migrations/1712109496949_alter_table_public_contest_player_drop_column_player_num/up.sql b/migrations/1712109496949_alter_table_public_contest_player_drop_column_player_num/up.sql new file mode 100644 index 0000000..149653a --- /dev/null +++ b/migrations/1712109496949_alter_table_public_contest_player_drop_column_player_num/up.sql @@ -0,0 +1 @@ +alter table "public"."contest_player" drop column "player_num" cascade; diff --git a/migrations/1712109779166_modify_primarykey_public_contest_player/down.sql b/migrations/1712109779166_modify_primarykey_public_contest_player/down.sql new file mode 100644 index 0000000..b242e3d --- /dev/null +++ b/migrations/1712109779166_modify_primarykey_public_contest_player/down.sql @@ -0,0 +1,4 @@ +alter table "public"."contest_player" drop constraint "contest_player_pkey"; +alter table "public"."contest_player" + add constraint "contest_player_pkey" + primary key ("contest_id", "team_label"); diff --git a/migrations/1712109779166_modify_primarykey_public_contest_player/up.sql b/migrations/1712109779166_modify_primarykey_public_contest_player/up.sql new file mode 100644 index 0000000..d29b2f4 --- /dev/null +++ b/migrations/1712109779166_modify_primarykey_public_contest_player/up.sql @@ -0,0 +1,6 @@ +BEGIN TRANSACTION; +ALTER TABLE "public"."contest_player" DROP CONSTRAINT "contest_player_pkey"; + +ALTER TABLE "public"."contest_player" + ADD CONSTRAINT "contest_player_pkey" PRIMARY KEY ("contest_id", "team_label", "player_label"); +COMMIT TRANSACTION; diff --git a/migrations/1712110053836_alter_table_public_contest_player_alter_column_roles_available/down.sql b/migrations/1712110053836_alter_table_public_contest_player_alter_column_roles_available/down.sql new file mode 100644 index 0000000..4fd8542 --- /dev/null +++ b/migrations/1712110053836_alter_table_public_contest_player_alter_column_roles_available/down.sql @@ -0,0 +1 @@ +ALTER TABLE "public"."contest_player" ALTER COLUMN "roles_available" drop default; diff --git a/migrations/1712110053836_alter_table_public_contest_player_alter_column_roles_available/up.sql b/migrations/1712110053836_alter_table_public_contest_player_alter_column_roles_available/up.sql new file mode 100644 index 0000000..3eb897d --- /dev/null +++ b/migrations/1712110053836_alter_table_public_contest_player_alter_column_roles_available/up.sql @@ -0,0 +1 @@ +alter table "public"."contest_player" alter column "roles_available" set default '[]';