diff --git a/config/alfresco/bootstrap-context.xml b/config/alfresco/bootstrap-context.xml index ef59239827..59fa7e6449 100644 --- a/config/alfresco/bootstrap-context.xml +++ b/config/alfresco/bootstrap-context.xml @@ -35,7 +35,7 @@ - classpath:alfresco/dbscripts/create/2.0/${db.script.dialect}/AlfrescoPostCreate-2.0-FKIndexes.sql + classpath:alfresco/dbscripts/create/2.1/${db.script.dialect}/AlfrescoPostCreate-2.1-FKIndexes.sql @@ -46,15 +46,15 @@ - + - - + + - + diff --git a/config/alfresco/dbscripts/create/2.0/org.hibernate.dialect.Dialect/AlfrescoPostCreate-2.0-FKIndexes.sql b/config/alfresco/dbscripts/create/2.0/org.hibernate.dialect.Dialect/AlfrescoPostCreate-2.0-FKIndexes.sql deleted file mode 100644 index c52d7b15eb..0000000000 --- a/config/alfresco/dbscripts/create/2.0/org.hibernate.dialect.Dialect/AlfrescoPostCreate-2.0-FKIndexes.sql +++ /dev/null @@ -1,53 +0,0 @@ --- --- Title: Post-Create Foreign Key indexes --- Database: Generic --- Since: V2.0 Schema 38 --- Author: Derek Hulley --- --- Please contact support@alfresco.com if you need assistance with the upgrade. --- - --- Repository -CREATE INDEX FKFFF41F9960601995 ON alf_access_control_entry (permission_id); -CREATE INDEX FKFFF41F99B25A50BF ON alf_access_control_entry (authority_id); -CREATE INDEX FKFFF41F99B9553F6C ON alf_access_control_entry (acl_id); -CREATE INDEX FK8A749A657B7FDE43 ON alf_auth_ext_keys (id); -CREATE INDEX FKFFC5468E74173FF4 ON alf_child_assoc (child_node_id); -CREATE INDEX FKFFC5468E8E50E582 ON alf_child_assoc (parent_node_id); -CREATE INDEX FK60EFB626B9553F6C ON alf_node (acl_id); -CREATE INDEX FK60EFB626D24ADD25 ON alf_node (protocol, identifier); -CREATE INDEX FK7D4CF8EC7F2C8017 ON alf_node_properties (node_id); -CREATE INDEX FKD654E027F2C8017 ON alf_node_aspects (node_id); -CREATE INDEX FKE1A550BCB69C43F3 ON alf_node_assoc (source_node_id); -CREATE INDEX FKE1A550BCA8FC7769 ON alf_node_assoc (target_node_id); -CREATE INDEX FK71C2002B7F2C8017 ON alf_node_status (node_id); -CREATE INDEX FKBD4FF53D22DBA5BA ON alf_store (root_node_id); - --- --- Transaction tables --- -CREATE INDEX FK71C2002B9E57C13D ON alf_node_status (transaction_id); -CREATE INDEX FKB8761A3A9AE340B7 ON alf_transaction (server_id); - --- --- Audit tables --- -CREATE INDEX FKEAD1817484342E39 ON alf_audit_fact (audit_date_id); -CREATE INDEX FKEAD18174A0F9B8D9 ON alf_audit_fact (audit_source_id); -CREATE INDEX FKEAD18174F524CFD7 ON alf_audit_fact (audit_conf_id); - --- AVM -CREATE INDEX fk_avm_asp_node ON avm_aspects (node_id); -CREATE INDEX fk_avm_ce_child ON avm_child_entries (child_id); -CREATE INDEX fk_avm_ce_parent ON avm_child_entries (parent_id); -CREATE INDEX fk_avm_hl_desc ON avm_history_links (descendent); -CREATE INDEX fk_avm_hl_ancestor ON avm_history_links (ancestor); -CREATE INDEX fk_avm_ml_from ON avm_merge_links (mfrom); -CREATE INDEX fk_avm_ml_to ON avm_merge_links (mto); -CREATE INDEX fk_avm_np_node ON avm_node_properties (node_id); -CREATE INDEX fk_avm_n_acl ON avm_nodes (acl_id); -CREATE INDEX fk_avm_n_store ON avm_nodes (store_new_id); -CREATE INDEX fk_avm_sp_store ON avm_store_properties (avm_store_id); -CREATE INDEX fk_avm_s_root ON avm_stores (current_root_id); -CREATE INDEX fk_avm_vr_store ON avm_version_roots (avm_store_id); -CREATE INDEX fk_avm_vr_root ON avm_version_roots (root_id); diff --git a/config/alfresco/dbscripts/create/2.0/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoPostCreate-2.0-FKIndexes.sql b/config/alfresco/dbscripts/create/2.0/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoPostCreate-2.0-FKIndexes.sql deleted file mode 100644 index 674078042b..0000000000 --- a/config/alfresco/dbscripts/create/2.0/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoPostCreate-2.0-FKIndexes.sql +++ /dev/null @@ -1,10 +0,0 @@ --- --- Title: Post-Create AVM Foreign Key indexes --- Database: MySQL --- Since: V2.0 Schema 38 --- Author: Derek Hulley --- --- Please contact support@alfresco.com if you need assistance with the upgrade. --- - --- The MySQL dialects apply the FK indexes by default diff --git a/config/alfresco/dbscripts/create/2.1/org.hibernate.dialect.Dialect/AlfrescoPostCreate-2.1-FKIndexes.sql b/config/alfresco/dbscripts/create/2.1/org.hibernate.dialect.Dialect/AlfrescoPostCreate-2.1-FKIndexes.sql new file mode 100644 index 0000000000..c15a98afb6 --- /dev/null +++ b/config/alfresco/dbscripts/create/2.1/org.hibernate.dialect.Dialect/AlfrescoPostCreate-2.1-FKIndexes.sql @@ -0,0 +1,70 @@ +-- +-- Title: Post-Create Foreign Key indexes +-- Database: Generic +-- Since: V2.0 Schema 63 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- + +-- JBPM +-- JBPM tables have explicit indexes where required. Adding FK indexes here +-- leads to duplication, and on MySQL, this is exactly what happens. + +-- Repository +CREATE INDEX FKFFF41F9960601995 ON alf_access_control_entry (permission_id); +CREATE INDEX FKFFF41F99B25A50BF ON alf_access_control_entry (authority_id); +CREATE INDEX FKFFF41F99B9553F6C ON alf_access_control_entry (acl_id); +CREATE INDEX FK8A749A657B7FDE43 ON alf_auth_ext_keys (id); +CREATE INDEX FKFFC5468E74173FF4 ON alf_child_assoc (child_node_id); +CREATE INDEX FKFFC5468E8E50E582 ON alf_child_assoc (parent_node_id); +CREATE INDEX FK60EFB626B9553F6C ON alf_node (acl_id); +CREATE INDEX FK60EFB626D24ADD25 ON alf_node (protocol, identifier); +CREATE INDEX FK7D4CF8EC7F2C8017 ON alf_node_properties (node_id); +CREATE INDEX FK7D4CF8EC40E780DC ON alf_node_properties (attribute_value); +CREATE INDEX FKD654E027F2C8017 ON alf_node_aspects (node_id); +CREATE INDEX FKE1A550BCB69C43F3 ON alf_node_assoc (source_node_id); +CREATE INDEX FKE1A550BCA8FC7769 ON alf_node_assoc (target_node_id); +CREATE INDEX FK71C2002B7F2C8017 ON alf_node_status (node_id); +CREATE INDEX FKBD4FF53D22DBA5BA ON alf_store (root_node_id); + +-- +-- Transaction tables +-- +CREATE INDEX FK71C2002B9E57C13D ON alf_node_status (transaction_id); +CREATE INDEX FKB8761A3A9AE340B7 ON alf_transaction (server_id); + +-- +-- Audit tables +-- +CREATE INDEX FKEAD1817484342E39 ON alf_audit_fact (audit_date_id); +CREATE INDEX FKEAD18174A0F9B8D9 ON alf_audit_fact (audit_source_id); +CREATE INDEX FKEAD18174F524CFD7 ON alf_audit_fact (audit_conf_id); + +-- +-- Attribute tables +-- +CREATE INDEX fk_attr_n_acl ON alf_attributes (acl_id); +--CREATE INDEX FK64D0B9CF69B9F16A ON alf_global_attributes (attribute); This is auto-indexed +CREATE INDEX FKC7D52FB0ACD8822C ON alf_list_attribute_entries (list_id); +CREATE INDEX FKC7D52FB02C5AB86C ON alf_list_attribute_entries (attribute_id); +CREATE INDEX FK335CAE262C5AB86C ON alf_map_attribute_entries (attribute_id); +CREATE INDEX FK335CAE26AEAC208C ON alf_map_attribute_entries (map_id); + +-- AVM +CREATE INDEX fk_avm_asp_node ON avm_aspects (node_id); +CREATE INDEX FKD3FD9F95EDCD4A96 ON avm_aspects_new (id); +CREATE INDEX fk_avm_ce_child ON avm_child_entries (child_id); +CREATE INDEX fk_avm_ce_parent ON avm_child_entries (parent_id); +CREATE INDEX fk_avm_hl_desc ON avm_history_links (descendent); +CREATE INDEX fk_avm_hl_ancestor ON avm_history_links (ancestor); +CREATE INDEX fk_avm_ml_from ON avm_merge_links (mfrom); +CREATE INDEX fk_avm_ml_to ON avm_merge_links (mto); +CREATE INDEX FK44A37C8A6BD529F3 ON avm_node_properties_new (node_id); +CREATE INDEX fk_avm_np_node ON avm_node_properties (node_id); +CREATE INDEX fk_avm_n_acl ON avm_nodes (acl_id); +CREATE INDEX fk_avm_n_store ON avm_nodes (store_new_id); +CREATE INDEX fk_avm_sp_store ON avm_store_properties (avm_store_id); +CREATE INDEX fk_avm_s_root ON avm_stores (current_root_id); +CREATE INDEX fk_avm_vr_store ON avm_version_roots (avm_store_id); +CREATE INDEX fk_avm_vr_root ON avm_version_roots (root_id); diff --git a/config/alfresco/dbscripts/create/2.1/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoPostCreate-2.1-FKIndexes.sql b/config/alfresco/dbscripts/create/2.1/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoPostCreate-2.1-FKIndexes.sql new file mode 100644 index 0000000000..c4e01b517a --- /dev/null +++ b/config/alfresco/dbscripts/create/2.1/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoPostCreate-2.1-FKIndexes.sql @@ -0,0 +1,14 @@ +-- +-- Title: Post-Create Foreign Key indexes +-- Database: MySQL +-- Since: V2.0 Schema 63 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- + +-- Remove pointless duplicated FK indexes +ALTER TABLE alf_global_attributes DROP INDEX FK64D0B9CF69B9F16A; + + +-- The MySQL dialects apply the FK indexes by default diff --git a/config/alfresco/dbscripts/upgrade/1.4/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql b/config/alfresco/dbscripts/upgrade/1.4/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql deleted file mode 100644 index 427cee8419..0000000000 --- a/config/alfresco/dbscripts/upgrade/1.4/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql +++ /dev/null @@ -1,15 +0,0 @@ --- --- Foreign Key Indexes for PostgreSQL databases. (Generic Schema 1.4) --- - --- --- Record script finish --- -delete from alf_applied_patch where id = 'patch.db-V1.4-PostgresFKIndexes'; -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-V1.4-PostgresFKIndexes', 'Manually execute script AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql', - 21, 24, -1, 25, null, 'UNKOWN', 1, 1, 'Script completed' - ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/1.4/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql b/config/alfresco/dbscripts/upgrade/1.4/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql deleted file mode 100644 index 8fbc02d686..0000000000 --- a/config/alfresco/dbscripts/upgrade/1.4/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql +++ /dev/null @@ -1,42 +0,0 @@ --- --- Foreign Key Indexes for PostgreSQL databases. (PostgreSQL Schema 1.4) --- -CREATE INDEX FKFFF41F9960601995 ON alf_access_control_entry (permission_id); -CREATE INDEX FKFFF41F99B25A50BF ON alf_access_control_entry (authority_id); -CREATE INDEX FKFFF41F99B9553F6C ON alf_access_control_entry (acl_id); -CREATE INDEX FK8A749A657B7FDE43 ON alf_auth_ext_keys (id); -CREATE INDEX FKFFC5468E74173FF4 ON alf_child_assoc (child_node_id); -CREATE INDEX FKFFC5468E8E50E582 ON alf_child_assoc (parent_node_id); -CREATE INDEX FK60EFB626B9553F6C ON alf_node (acl_id); -CREATE INDEX FK60EFB626D24ADD25 ON alf_node (protocol, identifier); -CREATE INDEX FK7D4CF8EC7F2C8017 ON alf_node_properties (node_id); -CREATE INDEX FKD654E027F2C8017 ON alf_node_aspects (node_id); -CREATE INDEX FKE1A550BCB69C43F3 ON alf_node_assoc (source_node_id); -CREATE INDEX FKE1A550BCA8FC7769 ON alf_node_assoc (target_node_id); -CREATE INDEX FK71C2002B7F2C8017 ON alf_node_status (node_id); -CREATE INDEX FKBD4FF53D22DBA5BA ON alf_store (root_node_id); - --- --- Transaction tables --- -CREATE INDEX FK71C2002B9E57C13D ON alf_node_status (transaction_id); -CREATE INDEX FKB8761A3A9AE340B7 ON alf_transaction (server_id); - --- --- New audit tables --- -CREATE INDEX FKEAD1817484342E39 ON alf_audit_fact (audit_date_id); -CREATE INDEX FKEAD18174A0F9B8D9 ON alf_audit_fact (audit_source_id); -CREATE INDEX FKEAD18174F524CFD7 ON alf_audit_fact (audit_conf_id); - --- --- Record script finish --- -delete from alf_applied_patch where id = 'patch.db-V1.4-PostgresFKIndexes'; -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-V1.4-PostgresFKIndexes', 'Manually execute script AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql', - 21, 24, -1, 25, null, 'UNKOWN', TRUE, TRUE, 'Script completed' - ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql b/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql deleted file mode 100644 index b6a5946b5b..0000000000 --- a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql +++ /dev/null @@ -1,35 +0,0 @@ --- --- Title: AVM Foreign Key indexes --- Database: Generic --- Since: V2.0 Schema 38 --- Author: Derek Hulley --- --- Please contact support@alfresco.com if you need assistance with the upgrade. --- - -CREATE INDEX fk_avm_asp_node ON avm_aspects (node_id); -CREATE INDEX fk_avm_ce_child ON avm_child_entries (child_id); -CREATE INDEX fk_avm_ce_parent ON avm_child_entries (parent_id); -CREATE INDEX fk_avm_hl_desc ON avm_history_links (descendent); -CREATE INDEX fk_avm_hl_ancestor ON avm_history_links (ancestor); -CREATE INDEX fk_avm_ml_from ON avm_merge_links (mfrom); -CREATE INDEX fk_avm_ml_to ON avm_merge_links (mto); -CREATE INDEX fk_avm_np_node ON avm_node_properties (node_id); -CREATE INDEX fk_avm_n_acl ON avm_nodes (acl_id); -CREATE INDEX fk_avm_n_store ON avm_nodes (store_new_id); -CREATE INDEX fk_avm_sp_store ON avm_store_properties (avm_store_id); -CREATE INDEX fk_avm_s_root ON avm_stores (current_root_id); -CREATE INDEX fk_avm_vr_store ON avm_version_roots (avm_store_id); -CREATE INDEX fk_avm_vr_root ON avm_version_roots (root_id); - --- --- Record script finish --- -DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.0-AVMFKIndexes'; -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-V2.0-AVMFKIndexes', 'Manually executed script upgrade V2.0: AVM Foreign Key Indexes', - 0, 37, -1, 38, null, 'UNKOWN', 1, 1, 'Script completed' - ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.0-ExplicitIndexes.sql b/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.0-ExplicitIndexes.sql deleted file mode 100644 index 9911294d56..0000000000 --- a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.0-ExplicitIndexes.sql +++ /dev/null @@ -1,60 +0,0 @@ --- --- Title: Explicit indexes --- Database: Generic --- Since: V2.0 Schema 38 --- Author: Derek Hulley --- --- Please contact support@alfresco.com if you need assistance with the upgrade. --- --- None of the Hibernate dialects will generate statements for explicit indexes --- when creating new tables for an existing database. We need to check that the --- indexes for the AUDIT, JBPM and AVM tables are present. --- --- This script must be executed after Hibernate-generated scripts have been executed. --- Where the updates are being applied long after the tables may have been created, --- the index creation statements are optional. The the select statements ensure that --- the script is only executed once the appropriate tables have been created. --- - --- JBPM tables -SELECT COUNT(*) FROM JBPM_POOLEDACTOR; -CREATE INDEX IDX_PLDACTR_ACTID ON JBPM_POOLEDACTOR (ACTORID_);(optional) -SELECT COUNT(*) FROM JBPM_TASKINSTANCE; -CREATE INDEX IDX_TASK_ACTORID ON JBPM_TASKINSTANCE (ACTORID_);(optional) - --- Audit tables -SELECT COUNT(*) FROM alf_audit_date; -CREATE INDEX adt_q_idx ON alf_audit_date (quarter);(optional) -CREATE INDEX adt_dow_idx ON alf_audit_date (day_of_week);(optional) -CREATE INDEX adt_date_idx ON alf_audit_date (date_only);(optional) -CREATE INDEX adt_y_idx ON alf_audit_date (year);(optional) -CREATE INDEX adt_hy_idx ON alf_audit_date (halfYear);(optional) -CREATE INDEX adt_wom_idx ON alf_audit_date (week_of_month);(optional) -CREATE INDEX adt_dom_idx ON alf_audit_date (day_of_month);(optional) -CREATE INDEX adt_m_idx ON alf_audit_date (month);(optional) -CREATE INDEX adt_doy_idx ON alf_audit_date (day_of_year);(optional) -CREATE INDEX adt_woy_idx ON alf_audit_date (week_of_year);(optional) -SELECT COUNT(*) FROM alf_audit_fact; -CREATE INDEX adt_user_idx ON alf_audit_fact (user_id);(optional) -CREATE INDEX adt_store_idx ON alf_audit_fact (store_protocol, store_id, node_uuid);(optional) -SELECT COUNT(*) FROM alf_audit_source; -CREATE INDEX app_source_met_idx ON alf_audit_source (method);(optional) -CREATE INDEX app_source_app_idx ON alf_audit_source (application);(optional) -CREATE INDEX app_source_ser_idx ON alf_audit_source (service);(optional) - --- AVM tables: These are new so are not optional -CREATE INDEX idx_avm_np_name ON avm_node_properties (qname); -CREATE INDEX idx_avm_sp_name ON avm_store_properties (qname); -CREATE INDEX idx_avm_vr_version ON avm_version_roots (version_id); - --- --- Record script finish --- -DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.0-ExplicitIndexes'; -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-V2.0-ExplicitIndexes', 'Manually executed script upgrade V2.0: Explicit Indexes', - 0, 37, -1, 38, null, 'UNKOWN', 1, 1, 'Script completed' - ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql b/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql deleted file mode 100644 index 6a6246717f..0000000000 --- a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql +++ /dev/null @@ -1,22 +0,0 @@ --- --- Title: AVM Foreign Key indexes --- Database: MySQL --- Since: V2.0 Schema 38 --- Author: Derek Hulley --- --- Please contact support@alfresco.com if you need assistance with the upgrade. --- - --- The MySQL dialects apply the FK indexes by default - --- --- Record script finish --- -DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.0-AVMFKIndexes'; -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-V2.0-AVMFKIndexes', 'Manually executed script upgrade V2.0: AVM Foreign Key Indexes', - 0, 37, -1, 38, now(), 'UNKOWN', 1, 1, 'Script completed' - ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql b/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql deleted file mode 100644 index 3985a05789..0000000000 --- a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql +++ /dev/null @@ -1,35 +0,0 @@ --- --- Title: AVM Foreign Key indexes --- Database: PostgreSQL --- Since: V2.0 Schema 38 --- Author: Derek Hulley --- --- Please contact support@alfresco.com if you need assistance with the upgrade. --- - -CREATE INDEX fk_avm_asp_node ON avm_aspects (node_id); -CREATE INDEX fk_avm_ce_child ON avm_child_entries (child_id); -CREATE INDEX fk_avm_ce_parent ON avm_child_entries (parent_id); -CREATE INDEX fk_avm_hl_desc ON avm_history_links (descendent); -CREATE INDEX fk_avm_hl_ancestor ON avm_history_links (ancestor); -CREATE INDEX fk_avm_ml_from ON avm_merge_links (mfrom); -CREATE INDEX fk_avm_ml_to ON avm_merge_links (mto); -CREATE INDEX fk_avm_np_node ON avm_node_properties (node_id); -CREATE INDEX fk_avm_n_acl ON avm_nodes (acl_id); -CREATE INDEX fk_avm_n_store ON avm_nodes (store_new_id); -CREATE INDEX fk_avm_sp_store ON avm_store_properties (avm_store_id); -CREATE INDEX fk_avm_s_root ON avm_stores (current_root_id); -CREATE INDEX fk_avm_vr_store ON avm_version_roots (avm_store_id); -CREATE INDEX fk_avm_vr_root ON avm_version_roots (root_id); - --- --- Record script finish --- -DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.0-AVMFKIndexes'; -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-V2.0-AVMFKIndexes', 'Manually executed script upgrade V2.0: AVM Foreign Key Indexes', - 0, 37, -1, 38, null, 'UNKOWN', TRUE, TRUE, 'Script completed' - ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.0-ExplicitIndexes.sql b/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.0-ExplicitIndexes.sql deleted file mode 100644 index c610b0f361..0000000000 --- a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.0-ExplicitIndexes.sql +++ /dev/null @@ -1,66 +0,0 @@ --- --- Title: Explicit indexes --- Database: PostgreSQL --- Since: V2.0 Schema 38 --- Author: Derek Hulley --- --- Please contact support@alfresco.com if you need assistance with the upgrade. --- --- PostgreSQL cannot handle optional statements (statements that may fail) in the --- transaction. --- - --- JBPM tables -DROP INDEX IF EXISTS IDX_PLDACTR_ACTID; -CREATE INDEX IDX_PLDACTR_ACTID ON JBPM_POOLEDACTOR (ACTORID_); -DROP INDEX IF EXISTS IDX_TASK_ACTORID; -CREATE INDEX IDX_TASK_ACTORID ON JBPM_TASKINSTANCE (ACTORID_); - --- Audit tables -DROP INDEX IF EXISTS adt_q_idx; -CREATE INDEX adt_q_idx ON alf_audit_date (quarter); -DROP INDEX IF EXISTS adt_dow_idx; -CREATE INDEX adt_dow_idx ON alf_audit_date (day_of_week); -DROP INDEX IF EXISTS adt_date_idx; -CREATE INDEX adt_date_idx ON alf_audit_date (date_only); -DROP INDEX IF EXISTS adt_y_idx; -CREATE INDEX adt_y_idx ON alf_audit_date (year); -DROP INDEX IF EXISTS adt_hy_idx; -CREATE INDEX adt_hy_idx ON alf_audit_date (halfYear); -DROP INDEX IF EXISTS adt_wom_idx; -CREATE INDEX adt_wom_idx ON alf_audit_date (week_of_month); -DROP INDEX IF EXISTS adt_dom_idx; -CREATE INDEX adt_dom_idx ON alf_audit_date (day_of_month); -DROP INDEX IF EXISTS adt_m_idx; -CREATE INDEX adt_m_idx ON alf_audit_date (month); -DROP INDEX IF EXISTS adt_doy_idx; -CREATE INDEX adt_doy_idx ON alf_audit_date (day_of_year); -DROP INDEX IF EXISTS adt_woy_idx; -CREATE INDEX adt_woy_idx ON alf_audit_date (week_of_year); -DROP INDEX IF EXISTS adt_user_idx; -CREATE INDEX adt_user_idx ON alf_audit_fact (user_id); -DROP INDEX IF EXISTS adt_store_idx; -CREATE INDEX adt_store_idx ON alf_audit_fact (store_protocol, store_id, node_uuid); -DROP INDEX IF EXISTS app_source_met_idx; -CREATE INDEX app_source_met_idx ON alf_audit_source (method); -DROP INDEX IF EXISTS app_source_app_idx; -CREATE INDEX app_source_app_idx ON alf_audit_source (application); -DROP INDEX IF EXISTS app_source_ser_idx; -CREATE INDEX app_source_ser_idx ON alf_audit_source (service); - --- AVM tables: These are new so are not optional -CREATE INDEX idx_avm_np_name ON avm_node_properties (qname); -CREATE INDEX idx_avm_sp_name ON avm_store_properties (qname); -CREATE INDEX idx_avm_vr_version ON avm_version_roots (version_id); - --- --- Record script finish --- -DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.0-ExplicitIndexes'; -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-V2.0-ExplicitIndexes', 'Manually executed script upgrade V2.0: Explicit Indexes', - 0, 37, -1, 38, null, 'UNKOWN', TRUE, TRUE, 'Script completed' - ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-ExplicitIndexes.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-ExplicitIndexes.sql new file mode 100644 index 0000000000..ea97c3ddd8 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-ExplicitIndexes.sql @@ -0,0 +1,113 @@ +-- +-- Title: Ensure that all expicit indexes are present +-- Database: Generic +-- Since: V2.1 Schema 64 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- During an upgrade, explicit indexes are not added. This script ensures that +-- all explicit indexes that would be available after a clean boot are also +-- available for an upgrade. + +-- JBPM +SELECT COUNT(*) FROM JBPM_ACTION; +CREATE INDEX IDX_ACTION_EVENT ON JBPM_ACTION (EVENT_);(optional) +CREATE INDEX IDX_ACTION_ACTNDL ON JBPM_ACTION (ACTIONDELEGATION_);(optional) +CREATE INDEX IDX_ACTION_PROCDF ON JBPM_ACTION (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_COMMENT; +CREATE INDEX IDX_COMMENT_TOKEN ON JBPM_COMMENT (TOKEN_);(optional) +CREATE INDEX IDX_COMMENT_TSK ON JBPM_COMMENT (TASKINSTANCE_);(optional) +SELECT COUNT(*) FROM JBPM_DELEGATION; +CREATE INDEX IDX_DELEG_PRCD ON JBPM_DELEGATION (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_JOB; +CREATE INDEX IDX_JOB_TSKINST ON JBPM_JOB (TASKINSTANCE_);(optional) +CREATE INDEX IDX_JOB_PRINST ON JBPM_JOB (PROCESSINSTANCE_);(optional) +CREATE INDEX IDX_JOB_TOKEN ON JBPM_JOB (TOKEN_);(optional) +SELECT COUNT(*) FROM JBPM_MODULEDEFINITION; +CREATE INDEX IDX_MODDEF_PROCDF ON JBPM_MODULEDEFINITION (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_MODULEINSTANCE; +CREATE INDEX IDX_MODINST_PRINST ON JBPM_MODULEINSTANCE (PROCESSINSTANCE_);(optional) +SELECT COUNT(*) FROM JBPM_NODE; +CREATE INDEX IDX_PSTATE_SBPRCDEF ON JBPM_NODE (SUBPROCESSDEFINITION_);(optional) +CREATE INDEX IDX_NODE_SUPRSTATE ON JBPM_NODE (SUPERSTATE_);(optional) +CREATE INDEX IDX_NODE_PROCDEF ON JBPM_NODE (PROCESSDEFINITION_);(optional) +CREATE INDEX IDX_NODE_ACTION ON JBPM_NODE (ACTION_);(optional) +SELECT COUNT(*) FROM JBPM_POOLEDACTOR; +CREATE INDEX IDX_PLDACTR_ACTID ON JBPM_POOLEDACTOR (ACTORID_);(optional) +CREATE INDEX IDX_TSKINST_SWLANE ON JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);(optional) +SELECT COUNT(*) FROM JBPM_PROCESSDEFINITION; +CREATE INDEX IDX_PROCDEF_STRTST ON JBPM_PROCESSDEFINITION (STARTSTATE_);(optional) +SELECT COUNT(*) FROM JBPM_PROCESSINSTANCE; +CREATE INDEX IDX_PROCIN_ROOTTK ON JBPM_PROCESSINSTANCE (ROOTTOKEN_);(optional) +CREATE INDEX IDX_PROCIN_SPROCTK ON JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);(optional) +CREATE INDEX IDX_PROCIN_PROCDEF ON JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_RUNTIMEACTION; +CREATE INDEX IDX_RTACTN_PRCINST ON JBPM_RUNTIMEACTION (PROCESSINSTANCE_);(optional) +CREATE INDEX IDX_RTACTN_ACTION ON JBPM_RUNTIMEACTION (ACTION_);(optional) +SELECT COUNT(*) FROM JBPM_SWIMLANEINSTANCE; +CREATE INDEX IDX_SWIMLINST_SL ON JBPM_SWIMLANEINSTANCE (SWIMLANE_);(optional) +SELECT COUNT(*) FROM JBPM_TASK; +CREATE INDEX IDX_TASK_TSKNODE ON JBPM_TASK (TASKNODE_);(optional) +CREATE INDEX IDX_TASK_PROCDEF ON JBPM_TASK (PROCESSDEFINITION_);(optional) +CREATE INDEX IDX_TASK_TASKMGTDF ON JBPM_TASK (TASKMGMTDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_TASKINSTANCE; +CREATE INDEX IDX_TASKINST_TOKN ON JBPM_TASKINSTANCE (TOKEN_);(optional) +CREATE INDEX IDX_TASKINST_TSK ON JBPM_TASKINSTANCE (TASK_, PROCINST_);(optional) +CREATE INDEX IDX_TSKINST_TMINST ON JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);(optional) +CREATE INDEX IDX_TSKINST_SLINST ON JBPM_TASKINSTANCE (SWIMLANINSTANCE_);(optional) +CREATE INDEX IDX_TASK_ACTORID ON JBPM_TASKINSTANCE (ACTORID_);(optional) +SELECT COUNT(*) FROM JBPM_TOKEN; +CREATE INDEX IDX_TOKEN_PROCIN ON JBPM_TOKEN (PROCESSINSTANCE_);(optional) +CREATE INDEX IDX_TOKEN_SUBPI ON JBPM_TOKEN (SUBPROCESSINSTANCE_);(optional) +CREATE INDEX IDX_TOKEN_NODE ON JBPM_TOKEN (NODE_);(optional) +CREATE INDEX IDX_TOKEN_PARENT ON JBPM_TOKEN (PARENT_);(optional) +SELECT COUNT(*) FROM JBPM_TOKENVARIABLEMAP; +CREATE INDEX IDX_TKVARMAP_CTXT ON JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);(optional) +CREATE INDEX IDX_TKVVARMP_TOKEN ON JBPM_TOKENVARIABLEMAP (TOKEN_);(optional) +SELECT COUNT(*) FROM JBPM_TRANSITION; +CREATE INDEX IDX_TRANSIT_TO ON JBPM_TRANSITION (TO_);(optional) +CREATE INDEX IDX_TRANSIT_FROM ON JBPM_TRANSITION (FROM_);(optional) +CREATE INDEX IDX_TRANS_PROCDEF ON JBPM_TRANSITION (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_VARIABLEINSTANCE; +CREATE INDEX IDX_VARINST_TKVARMP ON JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);(optional) +CREATE INDEX IDX_VARINST_PRCINS ON JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);(optional) +CREATE INDEX IDX_VARINST_TK ON JBPM_VARIABLEINSTANCE (TOKEN_);(optional) + +SELECT COUNT(*) FROM alf_audit_date; +CREATE INDEX adt_q_idx ON alf_audit_date (quarter);(optional) +CREATE INDEX adt_dow_idx ON alf_audit_date (day_of_week);(optional) +CREATE INDEX adt_date_idx ON alf_audit_date (date_only);(optional) +CREATE INDEX adt_y_idx ON alf_audit_date (year);(optional) +CREATE INDEX adt_hy_idx ON alf_audit_date (halfYear);(optional) +CREATE INDEX adt_wom_idx ON alf_audit_date (week_of_month);(optional) +CREATE INDEX adt_dom_idx ON alf_audit_date (day_of_month);(optional) +CREATE INDEX adt_m_idx ON alf_audit_date (month);(optional) +CREATE INDEX adt_doy_idx ON alf_audit_date (day_of_year);(optional) +CREATE INDEX adt_woy_idx ON alf_audit_date (week_of_year);(optional) +SELECT COUNT(*) FROM alf_audit_fact; +CREATE INDEX adt_user_idx ON alf_audit_fact (user_id);(optional) +CREATE INDEX adt_store_idx ON alf_audit_fact (store_protocol, store_id, node_uuid);(optional) +SELECT COUNT(*) FROM alf_audit_source; +CREATE INDEX app_source_met_idx ON alf_audit_source (method);(optional) +CREATE INDEX app_source_app_idx ON alf_audit_source (application);(optional) +CREATE INDEX app_source_ser_idx ON alf_audit_source (service);(optional) + +SELECT COUNT(*) FROM avm_node_properties; +CREATE INDEX idx_avm_np_name ON avm_node_properties (qname);(optional) +SELECT COUNT(*) FROM avm_store_properties; +CREATE INDEX idx_avm_sp_name ON avm_store_properties (qname);(optional) +SELECT COUNT(*) FROM avm_version_roots; +CREATE INDEX idx_avm_vr_version ON avm_version_roots (version_id);(optional) + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-ExplicitIndexes'; +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-V2.1-ExplicitIndexes', 'Manually executed script upgrade V2.1: Ensure existence of V2.1 Explicit indexes', + 0, 63, -1, 64, null, 'UNKOWN', 1, 1, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql new file mode 100644 index 0000000000..51a37927d5 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql @@ -0,0 +1,115 @@ +-- +-- Title: Ensure that all Foreign Key indexes are present +-- Database: Generic +-- Since: V2.1 Schema 64 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- All dialects, with the exception of MySQL, will not have FK-related indexes +-- automatically generated by Hibernate. Quite a few indexes here will be present +-- in the database already, but the list depends on the particular upgrade path +-- taken. In order to reduce the number of scripts that need to be run to cater for +-- these diverse scenarios, this script just attempts to create each and every +-- index that would be created for a new install. The statements are optional, apart +-- from the control statements to check for the presence of the required tables. + +-- JBPM +-- JBPM tables have explicit indexes where required. Adding FK indexes here +-- leads to duplication, and on MySQL, this is exactly what happens. + +-- Repository +SELECT COUNT(*) FROM alf_access_control_entry; +CREATE INDEX FKFFF41F9960601995 ON alf_access_control_entry (permission_id);(optional) +CREATE INDEX FKFFF41F99B25A50BF ON alf_access_control_entry (authority_id);(optional) +CREATE INDEX FKFFF41F99B9553F6C ON alf_access_control_entry (acl_id);(optional) +SELECT COUNT(*) FROM alf_auth_ext_keys; +CREATE INDEX FK8A749A657B7FDE43 ON alf_auth_ext_keys (id);(optional) +SELECT COUNT(*) FROM alf_child_assoc; +CREATE INDEX FKFFC5468E74173FF4 ON alf_child_assoc (child_node_id);(optional) +CREATE INDEX FKFFC5468E8E50E582 ON alf_child_assoc (parent_node_id);(optional) +SELECT COUNT(*) FROM alf_node; +CREATE INDEX FK60EFB626B9553F6C ON alf_node (acl_id);(optional) +CREATE INDEX FK60EFB626D24ADD25 ON alf_node (protocol, identifier);(optional) +SELECT COUNT(*) FROM alf_node_properties; +CREATE INDEX FK7D4CF8EC7F2C8017 ON alf_node_properties (node_id);(optional) +CREATE INDEX FK7D4CF8EC40E780DC ON alf_node_properties (attribute_value);(optional) +SELECT COUNT(*) FROM alf_node_aspects; +CREATE INDEX FKD654E027F2C8017 ON alf_node_aspects (node_id);(optional) +SELECT COUNT(*) FROM alf_node_assoc; +CREATE INDEX FKE1A550BCB69C43F3 ON alf_node_assoc (source_node_id);(optional) +CREATE INDEX FKE1A550BCA8FC7769 ON alf_node_assoc (target_node_id);(optional) +SELECT COUNT(*) FROM alf_node_status; +CREATE INDEX FK71C2002B7F2C8017 ON alf_node_status (node_id);(optional) +SELECT COUNT(*) FROM alf_store; +CREATE INDEX FKBD4FF53D22DBA5BA ON alf_store (root_node_id);(optional) + +-- +-- Transaction tables +-- +CREATE INDEX FK71C2002B9E57C13D ON alf_node_status (transaction_id);(optional) +SELECT COUNT(*) FROM alf_transaction; +CREATE INDEX FKB8761A3A9AE340B7 ON alf_transaction (server_id);(optional) + +-- +-- Audit tables +-- +SELECT COUNT(*) FROM alf_audit_fact; +CREATE INDEX FKEAD1817484342E39 ON alf_audit_fact (audit_date_id);(optional) +CREATE INDEX FKEAD18174A0F9B8D9 ON alf_audit_fact (audit_source_id);(optional) +CREATE INDEX FKEAD18174F524CFD7 ON alf_audit_fact (audit_conf_id);(optional) + +-- +-- Attribute tables +-- +SELECT COUNT(*) FROM alf_attributes; +CREATE INDEX fk_attr_n_acl ON alf_attributes (acl_id);(optional) +SELECT COUNT(*) FROM alf_global_attributes; +CREATE INDEX FK64D0B9CF69B9F16A ON alf_global_attributes (attribute);(optional) +SELECT COUNT(*) FROM alf_list_attribute_entries; +CREATE INDEX FKC7D52FB0ACD8822C ON alf_list_attribute_entries (list_id);(optional) +CREATE INDEX FKC7D52FB02C5AB86C ON alf_list_attribute_entries (attribute_id);(optional) +SELECT COUNT(*) FROM alf_map_attribute_entries; +CREATE INDEX FK335CAE262C5AB86C ON alf_map_attribute_entries (attribute_id);(optional) +CREATE INDEX FK335CAE26AEAC208C ON alf_map_attribute_entries (map_id);(optional) + +-- AVM +SELECT COUNT(*) FROM avm_aspects; +CREATE INDEX fk_avm_asp_node ON avm_aspects (node_id);(optional) +SELECT COUNT(*) FROM avm_aspects_new; +CREATE INDEX FKD3FD9F95EDCD4A96 ON avm_aspects_new (id);(optional) +SELECT COUNT(*) FROM avm_child_entries; +CREATE INDEX fk_avm_ce_child ON avm_child_entries (child_id);(optional) +CREATE INDEX fk_avm_ce_parent ON avm_child_entries (parent_id);(optional) +SELECT COUNT(*) FROM avm_history_links; +CREATE INDEX fk_avm_hl_desc ON avm_history_links (descendent);(optional) +CREATE INDEX fk_avm_hl_ancestor ON avm_history_links (ancestor);(optional) +SELECT COUNT(*) FROM avm_merge_links; +CREATE INDEX fk_avm_ml_from ON avm_merge_links (mfrom);(optional) +CREATE INDEX fk_avm_ml_to ON avm_merge_links (mto);(optional) +SELECT COUNT(*) FROM avm_node_properties_new; +CREATE INDEX FK44A37C8A6BD529F3 ON avm_node_properties_new (node_id);(optional) +CREATE INDEX fk_avm_np_node ON avm_node_properties (node_id);(optional) +SELECT COUNT(*) FROM avm_nodes; +CREATE INDEX fk_avm_n_acl ON avm_nodes (acl_id);(optional) +CREATE INDEX fk_avm_n_store ON avm_nodes (store_new_id);(optional) +SELECT COUNT(*) FROM avm_store_properties; +CREATE INDEX fk_avm_sp_store ON avm_store_properties (avm_store_id);(optional) +SELECT COUNT(*) FROM avm_stores; +CREATE INDEX fk_avm_s_root ON avm_stores (current_root_id);(optional) +SELECT COUNT(*) FROM avm_version_roots; +CREATE INDEX fk_avm_vr_store ON avm_version_roots (avm_store_id);(optional) +CREATE INDEX fk_avm_vr_root ON avm_version_roots (root_id);(optional) + + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-FKIndexes'; +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-V2.1-FKIndexes', 'Manually executed script upgrade V2.1: Ensure existence of V2.1 FK indexes', + 0, 63, -1, 64, null, 'UNKOWN', 1, 1, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql new file mode 100644 index 0000000000..031aa1132c --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql @@ -0,0 +1,21 @@ +-- +-- Title: Add text columns that allow null +-- Database: Generic +-- Since: V2.1 Schema 64 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- This is a Sybase issue, so nothing is required here. + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-NotNullColumns'; +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-V2.1-NotNullColumns', 'Manually executed script upgrade V2.1: Add nullable columns', + 0, 63, -1, 64, null, 'UNKOWN', 1, 1, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-VersionColumns.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-VersionColumns.sql index e4b0a3f472..a369bc6030 100644 --- a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-VersionColumns.sql +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.Dialect/AlfrescoSchemaUpdate-2.1-VersionColumns.sql @@ -18,15 +18,16 @@ UPDATE alf_access_control_list SET version = 1 WHERE version IS NULL; UPDATE alf_access_control_entry SET version = 1 WHERE version IS NULL; UPDATE alf_permission SET version = 1 WHERE version IS NULL; UPDATE alf_authority SET version = 1 WHERE version IS NULL; +UPDATE alf_version_count SET version = 1 WHERE version IS NULL; -- -- Record script finish -- -DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-VersionColumns'; +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-VersionColumns2'; 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-V2.1-VersionColumns', 'Manually executed script upgrade V2.1: Created initial version number for ADM entities', - 0, 53, -1, 54, null, 'UNKOWN', 1, 1, 'Script completed' + 'patch.db-V2.1-VersionColumns2', 'Manually executed script upgrade V2.1: Created initial version number for ADM entities', + 0, 63, -1, 64, null, 'UNKOWN', 1, 1, 'Script completed' ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql new file mode 100644 index 0000000000..f8f12fc7b0 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.MySQLInnoDBDialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql @@ -0,0 +1,24 @@ +-- +-- Title: Ensure that all Foreign Key indexes are present +-- Database: MySQL InnoDB +-- Since: V2.1 Schema 64 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- The MySQL InnoDB Dialect has special support for foreign keys. + +-- Remove pointless duplicated FK indexes +ALTER TABLE alf_global_attributes DROP INDEX FK64D0B9CF69B9F16A; + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-FKIndexes'; +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-V2.1-FKIndexes', 'Manually executed script upgrade V2.1: Ensure existence of V2.1 FK indexes', + 0, 63, -1, 64, null, 'UNKOWN', 1, 1, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-ExplicitIndexes.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-ExplicitIndexes.sql new file mode 100644 index 0000000000..4702c2a70e --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-ExplicitIndexes.sql @@ -0,0 +1,113 @@ +-- +-- Title: Ensure that all expicit indexes are present +-- Database: PostgreSQL +-- Since: V2.1 Schema 64 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- During an upgrade, explicit indexes are not added. This script ensures that +-- all explicit indexes that would be available after a clean boot are also +-- available for an upgrade. + +-- JBPM +SELECT COUNT(*) FROM JBPM_ACTION; +CREATE INDEX IDX_ACTION_EVENT ON JBPM_ACTION (EVENT_);(optional) +CREATE INDEX IDX_ACTION_ACTNDL ON JBPM_ACTION (ACTIONDELEGATION_);(optional) +CREATE INDEX IDX_ACTION_PROCDF ON JBPM_ACTION (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_COMMENT; +CREATE INDEX IDX_COMMENT_TOKEN ON JBPM_COMMENT (TOKEN_);(optional) +CREATE INDEX IDX_COMMENT_TSK ON JBPM_COMMENT (TASKINSTANCE_);(optional) +SELECT COUNT(*) FROM JBPM_DELEGATION; +CREATE INDEX IDX_DELEG_PRCD ON JBPM_DELEGATION (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_JOB; +CREATE INDEX IDX_JOB_TSKINST ON JBPM_JOB (TASKINSTANCE_);(optional) +CREATE INDEX IDX_JOB_PRINST ON JBPM_JOB (PROCESSINSTANCE_);(optional) +CREATE INDEX IDX_JOB_TOKEN ON JBPM_JOB (TOKEN_);(optional) +SELECT COUNT(*) FROM JBPM_MODULEDEFINITION; +CREATE INDEX IDX_MODDEF_PROCDF ON JBPM_MODULEDEFINITION (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_MODULEINSTANCE; +CREATE INDEX IDX_MODINST_PRINST ON JBPM_MODULEINSTANCE (PROCESSINSTANCE_);(optional) +SELECT COUNT(*) FROM JBPM_NODE; +CREATE INDEX IDX_PSTATE_SBPRCDEF ON JBPM_NODE (SUBPROCESSDEFINITION_);(optional) +CREATE INDEX IDX_NODE_SUPRSTATE ON JBPM_NODE (SUPERSTATE_);(optional) +CREATE INDEX IDX_NODE_PROCDEF ON JBPM_NODE (PROCESSDEFINITION_);(optional) +CREATE INDEX IDX_NODE_ACTION ON JBPM_NODE (ACTION_);(optional) +SELECT COUNT(*) FROM JBPM_POOLEDACTOR; +CREATE INDEX IDX_PLDACTR_ACTID ON JBPM_POOLEDACTOR (ACTORID_);(optional) +CREATE INDEX IDX_TSKINST_SWLANE ON JBPM_POOLEDACTOR (SWIMLANEINSTANCE_);(optional) +SELECT COUNT(*) FROM JBPM_PROCESSDEFINITION; +CREATE INDEX IDX_PROCDEF_STRTST ON JBPM_PROCESSDEFINITION (STARTSTATE_);(optional) +SELECT COUNT(*) FROM JBPM_PROCESSINSTANCE; +CREATE INDEX IDX_PROCIN_ROOTTK ON JBPM_PROCESSINSTANCE (ROOTTOKEN_);(optional) +CREATE INDEX IDX_PROCIN_SPROCTK ON JBPM_PROCESSINSTANCE (SUPERPROCESSTOKEN_);(optional) +CREATE INDEX IDX_PROCIN_PROCDEF ON JBPM_PROCESSINSTANCE (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_RUNTIMEACTION; +CREATE INDEX IDX_RTACTN_PRCINST ON JBPM_RUNTIMEACTION (PROCESSINSTANCE_);(optional) +CREATE INDEX IDX_RTACTN_ACTION ON JBPM_RUNTIMEACTION (ACTION_);(optional) +SELECT COUNT(*) FROM JBPM_SWIMLANEINSTANCE; +CREATE INDEX IDX_SWIMLINST_SL ON JBPM_SWIMLANEINSTANCE (SWIMLANE_);(optional) +SELECT COUNT(*) FROM JBPM_TASK; +CREATE INDEX IDX_TASK_TSKNODE ON JBPM_TASK (TASKNODE_);(optional) +CREATE INDEX IDX_TASK_PROCDEF ON JBPM_TASK (PROCESSDEFINITION_);(optional) +CREATE INDEX IDX_TASK_TASKMGTDF ON JBPM_TASK (TASKMGMTDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_TASKINSTANCE; +CREATE INDEX IDX_TASKINST_TOKN ON JBPM_TASKINSTANCE (TOKEN_);(optional) +CREATE INDEX IDX_TASKINST_TSK ON JBPM_TASKINSTANCE (TASK_, PROCINST_);(optional) +CREATE INDEX IDX_TSKINST_TMINST ON JBPM_TASKINSTANCE (TASKMGMTINSTANCE_);(optional) +CREATE INDEX IDX_TSKINST_SLINST ON JBPM_TASKINSTANCE (SWIMLANINSTANCE_);(optional) +CREATE INDEX IDX_TASK_ACTORID ON JBPM_TASKINSTANCE (ACTORID_);(optional) +SELECT COUNT(*) FROM JBPM_TOKEN; +CREATE INDEX IDX_TOKEN_PROCIN ON JBPM_TOKEN (PROCESSINSTANCE_);(optional) +CREATE INDEX IDX_TOKEN_SUBPI ON JBPM_TOKEN (SUBPROCESSINSTANCE_);(optional) +CREATE INDEX IDX_TOKEN_NODE ON JBPM_TOKEN (NODE_);(optional) +CREATE INDEX IDX_TOKEN_PARENT ON JBPM_TOKEN (PARENT_);(optional) +SELECT COUNT(*) FROM JBPM_TOKENVARIABLEMAP; +CREATE INDEX IDX_TKVARMAP_CTXT ON JBPM_TOKENVARIABLEMAP (CONTEXTINSTANCE_);(optional) +CREATE INDEX IDX_TKVVARMP_TOKEN ON JBPM_TOKENVARIABLEMAP (TOKEN_);(optional) +SELECT COUNT(*) FROM JBPM_TRANSITION; +CREATE INDEX IDX_TRANSIT_TO ON JBPM_TRANSITION (TO_);(optional) +CREATE INDEX IDX_TRANSIT_FROM ON JBPM_TRANSITION (FROM_);(optional) +CREATE INDEX IDX_TRANS_PROCDEF ON JBPM_TRANSITION (PROCESSDEFINITION_);(optional) +SELECT COUNT(*) FROM JBPM_VARIABLEINSTANCE; +CREATE INDEX IDX_VARINST_TKVARMP ON JBPM_VARIABLEINSTANCE (TOKENVARIABLEMAP_);(optional) +CREATE INDEX IDX_VARINST_PRCINS ON JBPM_VARIABLEINSTANCE (PROCESSINSTANCE_);(optional) +CREATE INDEX IDX_VARINST_TK ON JBPM_VARIABLEINSTANCE (TOKEN_);(optional) + +SELECT COUNT(*) FROM alf_audit_date; +CREATE INDEX adt_q_idx ON alf_audit_date (quarter);(optional) +CREATE INDEX adt_dow_idx ON alf_audit_date (day_of_week);(optional) +CREATE INDEX adt_date_idx ON alf_audit_date (date_only);(optional) +CREATE INDEX adt_y_idx ON alf_audit_date (year);(optional) +CREATE INDEX adt_hy_idx ON alf_audit_date (halfYear);(optional) +CREATE INDEX adt_wom_idx ON alf_audit_date (week_of_month);(optional) +CREATE INDEX adt_dom_idx ON alf_audit_date (day_of_month);(optional) +CREATE INDEX adt_m_idx ON alf_audit_date (month);(optional) +CREATE INDEX adt_doy_idx ON alf_audit_date (day_of_year);(optional) +CREATE INDEX adt_woy_idx ON alf_audit_date (week_of_year);(optional) +SELECT COUNT(*) FROM alf_audit_fact; +CREATE INDEX adt_user_idx ON alf_audit_fact (user_id);(optional) +CREATE INDEX adt_store_idx ON alf_audit_fact (store_protocol, store_id, node_uuid);(optional) +SELECT COUNT(*) FROM alf_audit_source; +CREATE INDEX app_source_met_idx ON alf_audit_source (method);(optional) +CREATE INDEX app_source_app_idx ON alf_audit_source (application);(optional) +CREATE INDEX app_source_ser_idx ON alf_audit_source (service);(optional) + +SELECT COUNT(*) FROM avm_node_properties; +CREATE INDEX idx_avm_np_name ON avm_node_properties (qname);(optional) +SELECT COUNT(*) FROM avm_store_properties; +CREATE INDEX idx_avm_sp_name ON avm_store_properties (qname);(optional) +SELECT COUNT(*) FROM avm_version_roots; +CREATE INDEX idx_avm_vr_version ON avm_version_roots (version_id);(optional) + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-ExplicitIndexes'; +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-V2.1-ExplicitIndexes', 'Manually executed script upgrade V2.1: Ensure existence of V2.1 Explicit indexes', + 0, 63, -1, 64, null, 'UNKOWN', TRUE, TRUE, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql new file mode 100644 index 0000000000..d0e9ead513 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-FKIndexes.sql @@ -0,0 +1,115 @@ +-- +-- Title: Ensure that all Foreign Key indexes are present +-- Database: PostgreSQL +-- Since: V2.1 Schema 64 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- All dialects, with the exception of MySQL, will not have FK-related indexes +-- automatically generated by Hibernate. Quite a few indexes here will be present +-- in the database already, but the list depends on the particular upgrade path +-- taken. In order to reduce the number of scripts that need to be run to cater for +-- these diverse scenarios, this script just attempts to create each and every +-- index that would be created for a new install. The statements are optional, apart +-- from the control statements to check for the presence of the required tables. + +-- JBPM +-- JBPM tables have explicit indexes where required. Adding FK indexes here +-- leads to duplication, and on MySQL, this is exactly what happens. + +-- Repository +SELECT COUNT(*) FROM alf_access_control_entry; +CREATE INDEX FKFFF41F9960601995 ON alf_access_control_entry (permission_id);(optional) +CREATE INDEX FKFFF41F99B25A50BF ON alf_access_control_entry (authority_id);(optional) +CREATE INDEX FKFFF41F99B9553F6C ON alf_access_control_entry (acl_id);(optional) +SELECT COUNT(*) FROM alf_auth_ext_keys; +CREATE INDEX FK8A749A657B7FDE43 ON alf_auth_ext_keys (id);(optional) +SELECT COUNT(*) FROM alf_child_assoc; +CREATE INDEX FKFFC5468E74173FF4 ON alf_child_assoc (child_node_id);(optional) +CREATE INDEX FKFFC5468E8E50E582 ON alf_child_assoc (parent_node_id);(optional) +SELECT COUNT(*) FROM alf_node; +CREATE INDEX FK60EFB626B9553F6C ON alf_node (acl_id);(optional) +CREATE INDEX FK60EFB626D24ADD25 ON alf_node (protocol, identifier);(optional) +SELECT COUNT(*) FROM alf_node_properties; +CREATE INDEX FK7D4CF8EC7F2C8017 ON alf_node_properties (node_id);(optional) +CREATE INDEX FK7D4CF8EC40E780DC ON alf_node_properties (attribute_value);(optional) +SELECT COUNT(*) FROM alf_node_aspects; +CREATE INDEX FKD654E027F2C8017 ON alf_node_aspects (node_id);(optional) +SELECT COUNT(*) FROM alf_node_assoc; +CREATE INDEX FKE1A550BCB69C43F3 ON alf_node_assoc (source_node_id);(optional) +CREATE INDEX FKE1A550BCA8FC7769 ON alf_node_assoc (target_node_id);(optional) +SELECT COUNT(*) FROM alf_node_status; +CREATE INDEX FK71C2002B7F2C8017 ON alf_node_status (node_id);(optional) +SELECT COUNT(*) FROM alf_store; +CREATE INDEX FKBD4FF53D22DBA5BA ON alf_store (root_node_id);(optional) + +-- +-- Transaction tables +-- +CREATE INDEX FK71C2002B9E57C13D ON alf_node_status (transaction_id);(optional) +SELECT COUNT(*) FROM alf_transaction; +CREATE INDEX FKB8761A3A9AE340B7 ON alf_transaction (server_id);(optional) + +-- +-- Audit tables +-- +SELECT COUNT(*) FROM alf_audit_fact; +CREATE INDEX FKEAD1817484342E39 ON alf_audit_fact (audit_date_id);(optional) +CREATE INDEX FKEAD18174A0F9B8D9 ON alf_audit_fact (audit_source_id);(optional) +CREATE INDEX FKEAD18174F524CFD7 ON alf_audit_fact (audit_conf_id);(optional) + +-- +-- Attribute tables +-- +SELECT COUNT(*) FROM alf_attributes; +CREATE INDEX fk_attr_n_acl ON alf_attributes (acl_id);(optional) +SELECT COUNT(*) FROM alf_global_attributes; +CREATE INDEX FK64D0B9CF69B9F16A ON alf_global_attributes (attribute);(optional) +SELECT COUNT(*) FROM alf_list_attribute_entries; +CREATE INDEX FKC7D52FB0ACD8822C ON alf_list_attribute_entries (list_id);(optional) +CREATE INDEX FKC7D52FB02C5AB86C ON alf_list_attribute_entries (attribute_id);(optional) +SELECT COUNT(*) FROM alf_map_attribute_entries; +CREATE INDEX FK335CAE262C5AB86C ON alf_map_attribute_entries (attribute_id);(optional) +CREATE INDEX FK335CAE26AEAC208C ON alf_map_attribute_entries (map_id);(optional) + +-- AVM +SELECT COUNT(*) FROM avm_aspects; +CREATE INDEX fk_avm_asp_node ON avm_aspects (node_id);(optional) +SELECT COUNT(*) FROM avm_aspects_new; +CREATE INDEX FKD3FD9F95EDCD4A96 ON avm_aspects_new (id);(optional) +SELECT COUNT(*) FROM avm_child_entries; +CREATE INDEX fk_avm_ce_child ON avm_child_entries (child_id);(optional) +CREATE INDEX fk_avm_ce_parent ON avm_child_entries (parent_id);(optional) +SELECT COUNT(*) FROM avm_history_links; +CREATE INDEX fk_avm_hl_desc ON avm_history_links (descendent);(optional) +CREATE INDEX fk_avm_hl_ancestor ON avm_history_links (ancestor);(optional) +SELECT COUNT(*) FROM avm_merge_links; +CREATE INDEX fk_avm_ml_from ON avm_merge_links (mfrom);(optional) +CREATE INDEX fk_avm_ml_to ON avm_merge_links (mto);(optional) +SELECT COUNT(*) FROM avm_node_properties_new; +CREATE INDEX FK44A37C8A6BD529F3 ON avm_node_properties_new (node_id);(optional) +CREATE INDEX fk_avm_np_node ON avm_node_properties (node_id);(optional) +SELECT COUNT(*) FROM avm_nodes; +CREATE INDEX fk_avm_n_acl ON avm_nodes (acl_id);(optional) +CREATE INDEX fk_avm_n_store ON avm_nodes (store_new_id);(optional) +SELECT COUNT(*) FROM avm_store_properties; +CREATE INDEX fk_avm_sp_store ON avm_store_properties (avm_store_id);(optional) +SELECT COUNT(*) FROM avm_stores; +CREATE INDEX fk_avm_s_root ON avm_stores (current_root_id);(optional) +SELECT COUNT(*) FROM avm_version_roots; +CREATE INDEX fk_avm_vr_store ON avm_version_roots (avm_store_id);(optional) +CREATE INDEX fk_avm_vr_root ON avm_version_roots (root_id);(optional) + + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-FKIndexes'; +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-V2.1-FKIndexes', 'Manually executed script upgrade V2.1: Ensure existence of V2.1 FK indexes', + 0, 63, -1, 64, null, 'UNKOWN', TRUE, TRUE, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-JBPMData.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-JBPMData.sql new file mode 100644 index 0000000000..27d12f42c6 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-JBPMData.sql @@ -0,0 +1,29 @@ +-- +-- Title: Jbpm 3.1.2 -> 3.2 Data Migration +-- Database: PostgreSQL +-- Since: V2.1 Schema 52 +-- Author: David Caruana +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- + +UPDATE JBPM_TASK SET PRIORITY_ = 2; +UPDATE JBPM_NODE SET ISASYNCEXCL_ = FALSE; +UPDATE JBPM_MODULEINSTANCE SET VERSION_ = 0; +UPDATE JBPM_POOLEDACTOR SET VERSION_ = 0; +UPDATE JBPM_SWIMLANEINSTANCE SET VERSION_ = 0; +UPDATE JBPM_TASKINSTANCE SET VERSION_ = 0; +UPDATE JBPM_TOKENVARIABLEMAP SET VERSION_ = 0; +UPDATE JBPM_VARIABLEINSTANCE SET VERSION_ = 0; + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-JBPMUpdate'; +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-V2.1-JBPMUpdate', 'Manually executed script upgrade V2.1: JBPM 3.1.2 to 3.2 Data Upgrade', + 0, 51, -1, 52, null, 'UNKOWN', TRUE, TRUE, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-JBPMProcessKey.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-JBPMProcessKey.sql new file mode 100644 index 0000000000..183a879ed5 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-JBPMProcessKey.sql @@ -0,0 +1,22 @@ +-- +-- Title: Jbpm 3.2 Process Instance Key +-- Database: PostgreSQL +-- Since: V2.1 Schema 63 +-- Author: David Caruana +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- + +UPDATE JBPM_PROCESSINSTANCE SET KEY_ = ID_ WHERE KEY_ IS NULL; + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-JBPMProcessKey'; +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-V2.1-JBPMProcessKey', 'Manually executed script upgrade V2.1: JBPM 3.2 Process Instance Key', + 0, 62, -1, 63, null, 'UNKOWN', TRUE, TRUE, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql new file mode 100644 index 0000000000..1eca3086ec --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql @@ -0,0 +1,21 @@ +-- +-- Title: Add text columns that allow null +-- Database: PostgreSQL +-- Since: V2.1 Schema 64 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- This is a Sybase issue, so nothing is required here. + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-NotNullColumns'; +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-V2.1-NotNullColumns', 'Manually executed script upgrade V2.1: Add nullable columns', + 0, 63, -1, 64, null, 'UNKOWN', TRUE, TRUE, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-VersionColumns.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-VersionColumns.sql new file mode 100644 index 0000000000..877f7fdd8c --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/AlfrescoSchemaUpdate-2.1-VersionColumns.sql @@ -0,0 +1,33 @@ +-- +-- Title: Fill 'version' columns with data +-- Database: PostgreSQL +-- Since: V2.1 Schema 54 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- + +UPDATE alf_store SET version = 1 WHERE version IS NULL; +UPDATE alf_node SET version = 1 WHERE version IS NULL; +UPDATE alf_child_assoc SET version = 1 WHERE version IS NULL; +UPDATE alf_node_assoc SET version = 1 WHERE version IS NULL; +UPDATE alf_node_status SET version = 1 WHERE version IS NULL; +UPDATE alf_transaction SET version = 1 WHERE version IS NULL; +UPDATE alf_server SET version = 1 WHERE version IS NULL; +UPDATE alf_access_control_list SET version = 1 WHERE version IS NULL; +UPDATE alf_access_control_entry SET version = 1 WHERE version IS NULL; +UPDATE alf_permission SET version = 1 WHERE version IS NULL; +UPDATE alf_authority SET version = 1 WHERE version IS NULL; +UPDATE alf_version_count SET version = 1 WHERE version IS NULL; + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-VersionColumns2'; +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-V2.1-VersionColumns2', 'Manually executed script upgrade V2.1: Created initial version number for ADM entities', + 0, 63, -1, 64, null, 'UNKOWN', TRUE, TRUE, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql similarity index 100% rename from config/alfresco/dbscripts/upgrade/2.0/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql rename to config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.PostgreSQLDialect/_pg_keypositions-function.sql diff --git a/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.SybaseDialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.SybaseDialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql new file mode 100644 index 0000000000..44647d61c8 --- /dev/null +++ b/config/alfresco/dbscripts/upgrade/2.1/org.hibernate.dialect.SybaseDialect/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql @@ -0,0 +1,53 @@ +-- +-- Title: ADD text columns that allow null +-- Database: Sybase +-- Since: V2.1 Schema 64 +-- Author: Derek Hulley +-- +-- Please contact support@alfresco.com if you need assistance with the upgrade. +-- +-- Sybase won't allow ALTER TABLE commands where the text columns are not null. +-- Where the nullability is not explicitly set, Sybase assumes NOT NULL. + +-- JBPM +ALTER TABLE JBPM_NODE ADD DESCRIPTION_ text NULL; +ALTER TABLE JBPM_NODE ADD ISASYNCEXCL_ tinyint DEFAULT 0; +ALTER TABLE JBPM_NODE ADD SUBPROCNAME_ text NULL; +ALTER TABLE JBPM_NODE ADD SCRIPT_ numeric(19,0) NULL; +ALTER TABLE JBPM_PROCESSDEFINITION ADD CLASS_ char(1) NOT NULL DEFAULT 'P'; +ALTER TABLE JBPM_PROCESSDEFINITION ADD DESCRIPTION_ text NULL; +ALTER TABLE JBPM_PROCESSINSTANCE ADD KEY_ text NULL; +ALTER TABLE JBPM_TASK ADD CONDITION_ text NULL; +ALTER TABLE JBPM_TASK ADD PRIORITY_ int DEFAULT 2; +ALTER TABLE JBPM_TASKINSTANCE ADD PROCINST_ numeric(19,0) NULL; +ALTER TABLE JBPM_TOKEN ADD LOCK_ text NULL; +ALTER TABLE JBPM_TRANSITION ADD DESCRIPTION_ text NULL; +ALTER TABLE JBPM_TRANSITION ADD CONDITION_ text NULL; + +-- ALFRESCO +ALTER TABLE alf_access_control_entry ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_access_control_list ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_authority ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_child_assoc ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_node ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_node_assoc ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_node_properties ADD attribute_value numeric(19,0) NULL; +ALTER TABLE alf_node_status ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_permission ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_server ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_store ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_transaction ADD version numeric(19,0) DEFAULT 0; +ALTER TABLE alf_version_count ADD version numeric(19,0) DEFAULT 0; + + +-- +-- Record script finish +-- +DELETE FROM alf_applied_patch WHERE id = 'patch.db-V2.1-NotNullColumns'; +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-V2.1-NotNullColumns', 'Manually executed script upgrade V2.1: ADD nullable text columns for Sybase', + 0, 63, -1, 64, null, 'UNKOWN', 1, 1, 'Script completed' + ); \ No newline at end of file diff --git a/config/alfresco/patch/patch-services-context.xml b/config/alfresco/patch/patch-services-context.xml index 14664122ad..efc47dcf36 100644 --- a/config/alfresco/patch/patch-services-context.xml +++ b/config/alfresco/patch/patch-services-context.xml @@ -527,22 +527,6 @@ - - patch.db-V1.4-PostgresFKIndexes - patch.schemaUpgradeScript.description - 21 - 51 - 52 - - classpath:alfresco/dbscripts/upgrade/1.4/${db.script.dialect}/AlfrescoSchemaUpdate-1.4-PostgresFKIndexes.sql - - - - - - - - patch.multilingualBootstrap patch.multilingualBootstrap.description @@ -648,28 +632,6 @@ - - patch.db-V2.0-ExplicitIndexes - patch.schemaUpgradeScript.description - 0 - 37 - 38 - - classpath:alfresco/dbscripts/upgrade/2.0/${db.script.dialect}/AlfrescoSchemaUpdate-2.0-ExplicitIndexes.sql - - - - - patch.db-V2.0-AVMFKIndexes - patch.schemaUpgradeScript.description - 0 - 37 - 38 - - classpath:alfresco/dbscripts/upgrade/2.0/${db.script.dialect}/AlfrescoSchemaUpdate-2.0-AVMFKIndexes.sql - - - patch.db-V2.1-JBPMUpdate patch.schemaUpgradeScript.description @@ -680,6 +642,17 @@ classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-JBPMData.sql + + + patch.db-V2.1-NotNullColumns + patch.schemaUpgradeScript.description + 0 + 51 + 52 + + classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-NotNullColumns.sql + + patch.groupNamesAsIdentifiers @@ -743,17 +716,6 @@ - - patch.db-V2.1-VersionColumns - patch.schemaUpgradeScript.description - 0 - 53 - 54 - - classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-VersionColumns.sql - - - patch.webscriptsExtension patch.webscriptsExtension.description @@ -896,4 +858,37 @@ + + patch.db-V2.1-FKIndexes + patch.schemaUpgradeScript.description + 0 + 63 + 64 + + classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-FKIndexes.sql + + + + + patch.db-V2.1-ExplicitIndexes + patch.schemaUpgradeScript.description + 0 + 63 + 64 + + classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-ExplicitIndexes.sql + + + + + patch.db-V2.1-VersionColumns2 + patch.schemaUpgradeScript.description + 0 + 63 + 64 + + classpath:alfresco/dbscripts/upgrade/2.1/${db.script.dialect}/AlfrescoSchemaUpdate-2.1-VersionColumns.sql + + + diff --git a/config/alfresco/version.properties b/config/alfresco/version.properties index 14c3d18bf3..8ff0422941 100644 --- a/config/alfresco/version.properties +++ b/config/alfresco/version.properties @@ -19,4 +19,4 @@ version.build=@build-number@ # Schema number -version.schema=63 +version.schema=64 diff --git a/source/java/org/alfresco/repo/domain/hibernate/VersionCount.hbm.xml b/source/java/org/alfresco/repo/domain/hibernate/VersionCount.hbm.xml index ad7fcfe2fb..4a0c2a102c 100644 --- a/source/java/org/alfresco/repo/domain/hibernate/VersionCount.hbm.xml +++ b/source/java/org/alfresco/repo/domain/hibernate/VersionCount.hbm.xml @@ -14,12 +14,18 @@ dynamic-insert="false" select-before-update="false" optimistic-lock="version" > + + + + + + diff --git a/source/java/org/alfresco/repo/domain/hibernate/VersionCountImpl.java b/source/java/org/alfresco/repo/domain/hibernate/VersionCountImpl.java index 022d989640..97fa223638 100644 --- a/source/java/org/alfresco/repo/domain/hibernate/VersionCountImpl.java +++ b/source/java/org/alfresco/repo/domain/hibernate/VersionCountImpl.java @@ -39,8 +39,7 @@ public class VersionCountImpl implements VersionCount, Serializable private static final long serialVersionUID = 6420375860928877809L; private StoreKey key; - @SuppressWarnings("unused") - private long version; // used by Hibernate for concurrency + private long version; private int versionCount; public VersionCountImpl() @@ -89,11 +88,25 @@ public class VersionCountImpl implements VersionCount, Serializable return key; } - public synchronized void setKey(StoreKey key) + public void setKey(StoreKey key) { this.key = key; } + public Long getVersion() + { + return version; + } + + /** + * For Hibernate use + */ + @SuppressWarnings("unused") + private void setVersion(Long version) + { + this.version = version; + } + /** * For Hibernate use */