mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.4 to HEAD
24603: Merged DEV/BELARUS/V3.4-2010_11_29 to V3.4 24329: ALF-5896: Schema auto-update failed (3.3g -> 3.4b) - MySQL 24458: ALF-5896: Schema auto-update failed (3.3g -> 3.4b) - Other DBs 24594: ALF-5896: Schema auto-update failed (3.3g -> 3.4b) - Refinements git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@25120 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -36,7 +36,84 @@ INSERT INTO alf_tmp_min_ace (min, permission_id, authority_id, allowed, applies)
|
|||||||
GROUP BY
|
GROUP BY
|
||||||
ace1.permission_id, ace1.authority_id, ace1.allowed, ace1.applies
|
ace1.permission_id, ace1.authority_id, ace1.allowed, ace1.applies
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE alf_tmp_acl_members (
|
||||||
|
id BIGINT NOT NULL,
|
||||||
|
min BIGINT NOT NULL,
|
||||||
|
acl_id BIGINT NOT NULL,
|
||||||
|
pos BIGINT,
|
||||||
|
ace_id BIGINT NOT NULL,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE (min, acl_id, pos, ace_id)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO
|
||||||
|
alf_tmp_acl_members
|
||||||
|
SELECT
|
||||||
|
mem.id, help.min, mem.acl_id, mem.pos, mem.ace_id
|
||||||
|
FROM
|
||||||
|
alf_acl_member mem
|
||||||
|
JOIN
|
||||||
|
alf_access_control_entry ace
|
||||||
|
ON
|
||||||
|
mem.ace_id = ace.id
|
||||||
|
JOIN
|
||||||
|
alf_tmp_min_ace help
|
||||||
|
ON
|
||||||
|
help.permission_id = ace.permission_id AND
|
||||||
|
help.authority_id = ace.authority_id AND
|
||||||
|
help.allowed = ace.allowed AND
|
||||||
|
help.applies = ace.applies;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE alf_tmp_acl_groups (
|
||||||
|
min BIGINT NOT NULL,
|
||||||
|
acl_id BIGINT NOT NULL,
|
||||||
|
pos BIGINT,
|
||||||
|
group_min BIGINT NOT NULL,
|
||||||
|
UNIQUE (min, acl_id, pos)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO
|
||||||
|
alf_tmp_acl_groups
|
||||||
|
SELECT
|
||||||
|
mems.min, mems.acl_id, mems.pos, min(mems.ace_id)
|
||||||
|
FROM
|
||||||
|
alf_tmp_acl_members mems
|
||||||
|
GROUP BY
|
||||||
|
mems.min, mems.acl_id, mems.pos
|
||||||
|
HAVING
|
||||||
|
count(*) > 1;
|
||||||
|
|
||||||
|
|
||||||
|
DELETE FROM
|
||||||
|
alf_acl_member
|
||||||
|
WHERE
|
||||||
|
id IN (
|
||||||
|
SELECT
|
||||||
|
mems.id
|
||||||
|
FROM
|
||||||
|
alf_tmp_acl_members mems
|
||||||
|
JOIN
|
||||||
|
alf_tmp_acl_groups groups
|
||||||
|
ON
|
||||||
|
mems.min = groups.min AND
|
||||||
|
mems.acl_id = groups.acl_id AND
|
||||||
|
mems.pos = groups.pos
|
||||||
|
WHERE
|
||||||
|
mems.ace_id <> groups.group_min
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE
|
||||||
|
alf_tmp_acl_members;
|
||||||
|
|
||||||
|
DROP TABLE
|
||||||
|
alf_tmp_acl_groups;
|
||||||
|
|
||||||
|
|
||||||
-- Update members to point to the first use of an access control entry
|
-- Update members to point to the first use of an access control entry
|
||||||
UPDATE alf_acl_member mem
|
UPDATE alf_acl_member mem
|
||||||
|
@@ -38,6 +38,83 @@ INSERT INTO alf_tmp_min_ace (min, permission_id, authority_id, allowed, applies)
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE alf_tmp_acl_members (
|
||||||
|
id INT8 NOT NULL,
|
||||||
|
min INT8 NOT NULL,
|
||||||
|
acl_id INT8 NOT NULL,
|
||||||
|
pos INT8,
|
||||||
|
ace_id INT8 NOT NULL,
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE (min, acl_id, pos, ace_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO
|
||||||
|
alf_tmp_acl_members
|
||||||
|
SELECT
|
||||||
|
mem.id, help.min, mem.acl_id, mem.pos, mem.ace_id
|
||||||
|
FROM
|
||||||
|
alf_acl_member mem
|
||||||
|
JOIN
|
||||||
|
alf_access_control_entry ace
|
||||||
|
ON
|
||||||
|
mem.ace_id = ace.id
|
||||||
|
JOIN
|
||||||
|
alf_tmp_min_ace help
|
||||||
|
ON
|
||||||
|
help.permission_id = ace.permission_id AND
|
||||||
|
help.authority_id = ace.authority_id AND
|
||||||
|
help.allowed = ace.allowed AND
|
||||||
|
help.applies = ace.applies;
|
||||||
|
|
||||||
|
|
||||||
|
CREATE TABLE alf_tmp_acl_groups (
|
||||||
|
min INT8 NOT NULL,
|
||||||
|
acl_id INT8 NOT NULL,
|
||||||
|
pos INT8,
|
||||||
|
group_min INT8 NOT NULL,
|
||||||
|
UNIQUE (min, acl_id, pos)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO
|
||||||
|
alf_tmp_acl_groups
|
||||||
|
SELECT
|
||||||
|
mems.min, mems.acl_id, mems.pos, min(mems.ace_id)
|
||||||
|
FROM
|
||||||
|
alf_tmp_acl_members mems
|
||||||
|
GROUP BY
|
||||||
|
mems.min, mems.acl_id, mems.pos
|
||||||
|
HAVING
|
||||||
|
count(*) > 1;
|
||||||
|
|
||||||
|
|
||||||
|
DELETE FROM
|
||||||
|
alf_acl_member
|
||||||
|
WHERE
|
||||||
|
id IN (
|
||||||
|
SELECT
|
||||||
|
mems.id
|
||||||
|
FROM
|
||||||
|
alf_tmp_acl_members mems
|
||||||
|
JOIN
|
||||||
|
alf_tmp_acl_groups groups
|
||||||
|
ON
|
||||||
|
mems.min = groups.min AND
|
||||||
|
mems.acl_id = groups.acl_id AND
|
||||||
|
mems.pos = groups.pos
|
||||||
|
WHERE
|
||||||
|
mems.ace_id <> groups.group_min
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
DROP TABLE
|
||||||
|
alf_tmp_acl_members;
|
||||||
|
|
||||||
|
DROP TABLE
|
||||||
|
alf_tmp_acl_groups;
|
||||||
|
|
||||||
|
|
||||||
-- Update members to point to the first use of an access control entry
|
-- Update members to point to the first use of an access control entry
|
||||||
UPDATE alf_acl_member mem
|
UPDATE alf_acl_member mem
|
||||||
SET ace_id = (SELECT help.min FROM alf_access_control_entry ace
|
SET ace_id = (SELECT help.min FROM alf_access_control_entry ace
|
||||||
|
Reference in New Issue
Block a user