Merged HEAD-BUG-FIX (5.1/Cloud) to HEAD (5.1/Cloud)

91113: Merged V4.2-BUG-FIX (4.2.5) to HEAD-BUG-FIX (5.0/Cloud)
      91053: Merged V4.2.4 (4.2.4) to V4.2-BUG-FIX (4.2.5)
         90961: Merged DEV to PATCHES/V4.2.4 (4.2.4)
            90904: MNT-12716 : 3.4 -> 4.2 Upgrade does not migrate locales of transalted documents
               - SQL upgrade patch was added to migrate old sys:locale property for cm:mlDocument and cm:mlContainer.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@94771 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2015-01-31 11:15:27 +00:00
parent 68f7ce770e
commit 188fde20b9
5 changed files with 184 additions and 2 deletions

View File

@@ -58,7 +58,8 @@
<ref bean="patch.db-V4.1-ChildAssoc-OrderBy" />
<ref bean="patch.db-V4.1-createIdxAlfNodeTQN" />
<ref bean="patch.db-V4.2-restructure-idx_alf_nprop_s-MSSQL" />
<ref bean="patch.db-V5.0-ContentUrlEncryptionTables" />
<ref bean="patch.db-V4.2-migrate-locale-multilingual" />
<ref bean="patch.db-V5.0-ContentUrlEncryptionTables" />
</list>
</property>
</bean>

View File

@@ -0,0 +1,80 @@
--
-- Title: Updates 'locale_id' column in 'alf_node' for nodes with cm:mlDocument aspect and of type cm:mlContainer
-- Database: MySQL
-- Since: V4.2.4 Schema 6068
-- Author: Pavel Yurkevich
--
-- Please contact support@alfresco.com if you need assistance with the upgrade.
--
CREATE TABLE tmp_locale_upgrade
(
node_id BIGINT NOT NULL,
string_value text,
KEY idx_tmp_loc_n_id (node_id),
KEY idx_tmp_loc_str_v (string_value(42))
) ENGINE=InnoDB;
--ASSIGN:locale_qname_id=id
SELECT alf_qname.id AS id FROM alf_qname
JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
WHERE
alf_namespace.uri = 'http://www.alfresco.org/model/system/1.0'
AND
alf_qname.local_name = 'locale';
INSERT INTO tmp_locale_upgrade (node_id, string_value)
(
SELECT alf_node_properties.node_id, string_value FROM alf_node_properties
JOIN alf_node_aspects ON (alf_node_aspects.node_id = alf_node_properties.node_id)
JOIN alf_qname ON (alf_qname.id = alf_node_aspects.qname_id)
JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
WHERE
alf_namespace.uri = 'http://www.alfresco.org/model/content/1.0'
AND
(
alf_qname.local_name = 'mlDocument'
)
AND
alf_node_properties.qname_id = ${locale_qname_id}
);
INSERT INTO tmp_locale_upgrade (node_id, string_value)
(
SELECT alf_node_properties.node_id, string_value FROM alf_node_properties
JOIN alf_node ON (alf_node.id = alf_node_properties.node_id)
JOIN alf_qname ON (alf_qname.id = alf_node.type_qname_id)
JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
WHERE
alf_namespace.uri = 'http://www.alfresco.org/model/content/1.0'
AND
alf_qname.local_name = 'mlContainer'
AND
alf_node_properties.qname_id = ${locale_qname_id}
);
INSERT INTO alf_locale (version, locale_str)
(
SELECT DISTINCT 0, string_value FROM tmp_locale_upgrade
LEFT JOIN alf_locale ON (alf_locale.locale_str = tmp_locale_upgrade.string_value)
WHERE alf_locale.locale_str IS NULL
);
UPDATE alf_node
JOIN tmp_locale_upgrade ON (tmp_locale_upgrade.node_id = alf_node.id)
JOIN alf_locale ON (tmp_locale_upgrade.string_value = alf_locale.locale_str)
SET locale_id = alf_locale.id;
DROP TABLE tmp_locale_upgrade;
--
-- Record script finish
--
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.2-migrate-locale-multilingual';
INSERT INTO alf_applied_patch
(id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
VALUES
(
'patch.db-V4.2-migrate-locale-multilingual', 'Manually executed script upgrade V4.2: Updates locale_id column in alf_node for ML nodes',
0, 6067, -1, 6068, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
);

View File

@@ -0,0 +1,85 @@
--
-- Title: Updates 'locale_id' column in 'alf_node' for nodes with cm:mlDocument aspect and of type cm:mlContainer
-- Database: PostgreSQL
-- Since: V4.2.4 Schema 6068
-- Author: Pavel Yurkevich
--
-- Please contact support@alfresco.com if you need assistance with the upgrade.
--
CREATE TABLE tmp_locale_upgrade
(
node_id INT8 NOT NULL,
string_value VARCHAR(1024)
);
CREATE INDEX idx_tmp_loc_n_id ON tmp_locale_upgrade (node_id);
CREATE INDEX idx_tmp_loc_str_v ON tmp_locale_upgrade (string_value);
--ASSIGN:locale_qname_id=id
SELECT alf_qname.id AS id FROM alf_qname
JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
WHERE
alf_namespace.uri = 'http://www.alfresco.org/model/system/1.0'
AND
alf_qname.local_name = 'locale';
INSERT INTO tmp_locale_upgrade (node_id, string_value)
(
SELECT alf_node_properties.node_id, string_value FROM alf_node_properties
JOIN alf_node_aspects ON (alf_node_aspects.node_id = alf_node_properties.node_id)
JOIN alf_qname ON (alf_qname.id = alf_node_aspects.qname_id)
JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
WHERE
alf_namespace.uri = 'http://www.alfresco.org/model/content/1.0'
AND
(
alf_qname.local_name = 'mlDocument'
)
AND
alf_node_properties.qname_id = ${locale_qname_id}
);
INSERT INTO tmp_locale_upgrade (node_id, string_value)
(
SELECT alf_node_properties.node_id, string_value FROM alf_node_properties
JOIN alf_node ON (alf_node.id = alf_node_properties.node_id)
JOIN alf_qname ON (alf_qname.id = alf_node.type_qname_id)
JOIN alf_namespace ON (alf_namespace.id = alf_qname.ns_id)
WHERE
alf_namespace.uri = 'http://www.alfresco.org/model/content/1.0'
AND
alf_qname.local_name = 'mlContainer'
AND
alf_node_properties.qname_id = ${locale_qname_id}
);
INSERT INTO alf_locale (id, version, locale_str)
SELECT nextval('alf_locale_seq'), 0, string_value
FROM
(
SELECT string_value FROM tmp_locale_upgrade
LEFT JOIN alf_locale ON (alf_locale.locale_str = tmp_locale_upgrade.string_value)
WHERE alf_locale.locale_str IS NULL GROUP BY string_value
) AS string_value;
UPDATE alf_node SET locale_id = alf_locale.id
FROM alf_locale, tmp_locale_upgrade
WHERE
tmp_locale_upgrade.node_id = alf_node.id
AND
tmp_locale_upgrade.string_value = alf_locale.locale_str;
DROP TABLE tmp_locale_upgrade;
--
-- Record script finish
--
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.2-migrate-locale-multilingual';
INSERT INTO alf_applied_patch
(id, description, fixes_from_schema, fixes_to_schema, applied_to_schema, target_schema, applied_on_date, applied_to_server, was_executed, succeeded, report)
VALUES
(
'patch.db-V4.2-migrate-locale-multilingual', 'Manually executed script upgrade V4.2: Updates locale_id column in alf_node for ML nodes',
0, 6067, -1, 6068, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
);

View File

@@ -1080,4 +1080,20 @@
</property>
</bean>
<bean id="patch.db-V4.2-migrate-locale-multilingual" class="org.alfresco.repo.admin.patch.impl.SchemaUpgradeScriptPatch" parent="basePatch">
<property name="id" value="patch.db-V4.2-migrate-locale-multilingual" />
<property name="description" value="patch.schemaUpgradeScript.description" />
<property name="fixesFromSchema"><value>0</value></property>
<property name="fixesToSchema"><value>8018</value></property>
<property name="targetSchema"><value>8019</value></property>
<property name="scriptUrl">
<value>classpath:alfresco/dbscripts/upgrade/4.2/${db.script.dialect}/migrate-locale-multilingual.sql</value>
</property>
<property name="dependsOn" >
<list>
<ref bean="patch.db-V4.0-Node-Locale" />
</list>
</property>
</bean>
</beans>

View File

@@ -23,4 +23,4 @@ version.build=r@scm-revision@-b@build-number@
# Schema number
version.schema=8018
version.schema=8019