Files
alfresco-community-repo/config/alfresco/dbscripts/upgrade/4.0/org.hibernate.dialect.MySQLInnoDBDialect/NodeAssoc-Ordering.sql
Derek Hulley eb64645c97 Merged DEV/SWIFT to HEAD
27584: ALF-8189: RINF 16: Upgrade peer associations
          - Create scripts and upgrades to add alf_node_assoc.assoc_index for all DBs
          - Part of ALF-7404: RINF 16: Peer association enhancements
   27640: Re-added changes from rev 27125, which were overwritten by 27584 (ALF-8334: RSOLR 013)
   28295: (RECORD ONLY) Upgrade Tika and POI to the latest versions

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28309 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2011-06-09 14:19:10 +00:00

68 lines
2.4 KiB
SQL

--
-- Title: Add 'assoc_index' column to 'alf_node_assoc'
-- Database: MySQL
-- Since: V4.0 Schema 5008
-- Author: Derek Hulley
--
-- Please contact support@alfresco.com if you need assistance with the upgrade.
--
-- Cut the original table to just the data
ALTER TABLE alf_node_assoc
DROP FOREIGN KEY fk_alf_nass_snode,
DROP FOREIGN KEY fk_alf_nass_tnode,
DROP FOREIGN KEY fk_alf_nass_tqn,
DROP INDEX source_node_id,
DROP INDEX fk_alf_nass_snode,
DROP INDEX fk_alf_nass_tnode,
DROP INDEX fk_alf_nass_tqn;
ALTER TABLE alf_node_assoc
RENAME TO t_alf_node_assoc;
-- So now it's just raw data
-- Reconstruct the table
CREATE TABLE alf_node_assoc
(
id BIGINT NOT NULL AUTO_INCREMENT,
version BIGINT NOT NULL,
source_node_id BIGINT NOT NULL,
target_node_id BIGINT NOT NULL,
type_qname_id BIGINT NOT NULL,
assoc_index BIGINT NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY source_node_id (source_node_id, target_node_id, type_qname_id),
KEY fk_alf_nass_snode (source_node_id, type_qname_id, assoc_index),
KEY fk_alf_nass_tnode (target_node_id, type_qname_id),
KEY fk_alf_nass_tqn (type_qname_id),
CONSTRAINT fk_alf_nass_snode FOREIGN KEY (source_node_id) REFERENCES alf_node (id),
CONSTRAINT fk_alf_nass_tnode FOREIGN KEY (target_node_id) REFERENCES alf_node (id),
CONSTRAINT fk_alf_nass_tqn FOREIGN KEY (type_qname_id) REFERENCES alf_qname (id)
) ENGINE=InnoDB;
-- Copy the data over
--FOREACH t_alf_node_assoc.id system.upgrade.alf_node_assoc.batchsize
INSERT INTO alf_node_assoc
(id, version, source_node_id, target_node_id, type_qname_id, assoc_index)
(
SELECT
id, 1, source_node_id, target_node_id, type_qname_id, 1
FROM
t_alf_node_assoc
WHERE
id >= ${LOWERBOUND} AND id <= ${UPPERBOUND}
);
-- Drop old data
DROP TABLE t_alf_node_assoc;
--
-- Record script finish
--
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V4.0-NodeAssoc-Ordering';
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.0-NodeAssoc-Ordering', 'Manually executed script upgrade V4.0: Add assoc_index column to alf_node_assoc',
0, 5008, -1, 5009, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
);