mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-25 23:06:30 +00:00
72 lines
1.6 KiB
MySQL
72 lines
1.6 KiB
MySQL
|
|
-- Make sure no other transaction is writing to fields table.
|
||
|
|
-- Will block transactions with events that modify the fields table.
|
||
|
|
-- SELECT is still possible during this time.
|
||
|
|
LOCK TABLE eventstore.fields IN SHARE ROW EXCLUSIVE MODE;
|
||
|
|
|
||
|
|
DELETE FROM eventstore.fields
|
||
|
|
WHERE object_type IN (
|
||
|
|
'instance_member_role',
|
||
|
|
'org_member_role',
|
||
|
|
'project_member_role'
|
||
|
|
);
|
||
|
|
|
||
|
|
INSERT INTO eventstore.fields(
|
||
|
|
instance_id,
|
||
|
|
resource_owner,
|
||
|
|
aggregate_type,
|
||
|
|
aggregate_id,
|
||
|
|
object_type,
|
||
|
|
object_id,
|
||
|
|
object_revision,
|
||
|
|
field_name,
|
||
|
|
value,
|
||
|
|
value_must_be_unique,
|
||
|
|
should_index
|
||
|
|
)
|
||
|
|
|
||
|
|
SELECT
|
||
|
|
instance_id,
|
||
|
|
resource_owner,
|
||
|
|
'instance' as aggregate_type,
|
||
|
|
id as aggregate_id,
|
||
|
|
'instance_member_role' as object_type,
|
||
|
|
user_id as object_id,
|
||
|
|
1::smallint as object_revision,
|
||
|
|
'instance_role' as field_name,
|
||
|
|
to_jsonb(unnest(roles)) as value,
|
||
|
|
false as value_must_be_unique,
|
||
|
|
true as should_index
|
||
|
|
FROM projections.instance_members4
|
||
|
|
|
||
|
|
UNION ALL
|
||
|
|
|
||
|
|
SELECT
|
||
|
|
instance_id,
|
||
|
|
resource_owner,
|
||
|
|
'org' as aggregate_type,
|
||
|
|
org_id as aggregate_id,
|
||
|
|
'org_member_role' as object_type,
|
||
|
|
user_id as object_id,
|
||
|
|
1::smallint as object_revision,
|
||
|
|
'org_role' as field_name,
|
||
|
|
to_jsonb(unnest(roles)) as value,
|
||
|
|
false as value_must_be_unique,
|
||
|
|
true as should_index
|
||
|
|
FROM projections.org_members4
|
||
|
|
|
||
|
|
UNION ALL
|
||
|
|
|
||
|
|
SELECT
|
||
|
|
instance_id,
|
||
|
|
resource_owner,
|
||
|
|
'project' as aggregate_type,
|
||
|
|
project_id as aggregate_id,
|
||
|
|
'project_member_role' as object_type,
|
||
|
|
user_id as object_id,
|
||
|
|
1::smallint as object_revision,
|
||
|
|
'project_role' as field_name,
|
||
|
|
to_jsonb(unnest(roles)) as value,
|
||
|
|
false as value_must_be_unique,
|
||
|
|
true as should_index
|
||
|
|
FROM projections.project_members4;
|