mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-22 15:12:38 +00:00
Merged ACE-1636 to HEAD update to Activiti 5.19.0
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@118791 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -250,6 +250,11 @@
|
|||||||
<nullable>true</nullable>
|
<nullable>true</nullable>
|
||||||
<autoincrement>false</autoincrement>
|
<autoincrement>false</autoincrement>
|
||||||
</column>
|
</column>
|
||||||
|
<column name="TIME_" order="11">
|
||||||
|
<type>datetime</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
</columns>
|
</columns>
|
||||||
<primarykey name="PRIMARY">
|
<primarykey name="PRIMARY">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
@@ -690,7 +695,13 @@
|
|||||||
</columnnames>
|
</columnnames>
|
||||||
</primarykey>
|
</primarykey>
|
||||||
<foreignkeys/>
|
<foreignkeys/>
|
||||||
<indexes/>
|
<indexes>
|
||||||
|
<index name="ACT_IDX_HI_TASK_INST_PROCINST" unique="false">
|
||||||
|
<columnnames>
|
||||||
|
<columnname>PROC_INST_ID_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</index>
|
||||||
|
</indexes>
|
||||||
</table>
|
</table>
|
||||||
<table name="act_hi_varinst">
|
<table name="act_hi_varinst">
|
||||||
<columns>
|
<columns>
|
||||||
@@ -1168,6 +1179,11 @@
|
|||||||
<nullable>true</nullable>
|
<nullable>true</nullable>
|
||||||
<autoincrement>false</autoincrement>
|
<autoincrement>false</autoincrement>
|
||||||
</column>
|
</column>
|
||||||
|
<column name="HAS_GRAPHICAL_NOTATION_" order="14">
|
||||||
|
<type>tinyint</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
</columns>
|
</columns>
|
||||||
<primarykey name="PRIMARY">
|
<primarykey name="PRIMARY">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
@@ -1350,6 +1366,11 @@
|
|||||||
<nullable>true</nullable>
|
<nullable>true</nullable>
|
||||||
<autoincrement>false</autoincrement>
|
<autoincrement>false</autoincrement>
|
||||||
</column>
|
</column>
|
||||||
|
<column name="LOCK_TIME_" order="17">
|
||||||
|
<type>timestamp</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
</columns>
|
</columns>
|
||||||
<primarykey name="PRIMARY">
|
<primarykey name="PRIMARY">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
@@ -1929,5 +1950,65 @@
|
|||||||
<foreignkeys/>
|
<foreignkeys/>
|
||||||
<indexes/>
|
<indexes/>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
<table name="act_procdef_info">
|
||||||
|
<columns>
|
||||||
|
<column name="ID_" order="1">
|
||||||
|
<type>varchar(64)</type>
|
||||||
|
<nullable>false</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
|
<column name="PROC_DEF_ID_" order="2">
|
||||||
|
<type>varchar(64)</type>
|
||||||
|
<nullable>false</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
|
<column name="REV_" order="3">
|
||||||
|
<type>int</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
|
<column name="INFO_JSON_ID_" order="4">
|
||||||
|
<type>varchar(64)</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
|
</columns>
|
||||||
|
<primarykey name="PRIMARY">
|
||||||
|
<columnnames>
|
||||||
|
<columnname order="1">ID_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</primarykey>
|
||||||
|
<foreignkeys>
|
||||||
|
<foreignkey name="ACT_FK_INFO_JSON_BA">
|
||||||
|
<localcolumn>INFO_JSON_ID_</localcolumn>
|
||||||
|
<targettable>ACT_GE_BYTEARRAY</targettable>
|
||||||
|
<targetcolumn>ID_</targetcolumn>
|
||||||
|
</foreignkey>
|
||||||
|
<foreignkey name="ACT_FK_INFO_PROCDEF">
|
||||||
|
<localcolumn>PROC_DEF_ID_</localcolumn>
|
||||||
|
<targettable>ACT_RE_PROCDEF</targettable>
|
||||||
|
<targetcolumn>ID_</targetcolumn>
|
||||||
|
</foreignkey>
|
||||||
|
</foreignkeys>
|
||||||
|
<indexes>
|
||||||
|
<index name="ACT_UNIQ_INFO_PROCDEF" unique="true">
|
||||||
|
<columnnames>
|
||||||
|
<columnname>PROC_DEF_ID_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</index>
|
||||||
|
<index name="ACT_IDX_INFO_PROCDEF" unique="false">
|
||||||
|
<columnnames>
|
||||||
|
<columnname>PROC_DEF_ID_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</index>
|
||||||
|
<index name="ACT_FK_INFO_JSON_BA" unique="false">
|
||||||
|
<columnnames>
|
||||||
|
<columnname>INFO_JSON_ID_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</index>
|
||||||
|
</indexes>
|
||||||
|
</table>
|
||||||
</objects>
|
</objects>
|
||||||
</schema>
|
</schema>
|
||||||
|
|||||||
@@ -322,6 +322,11 @@
|
|||||||
<nullable>true</nullable>
|
<nullable>true</nullable>
|
||||||
<autoincrement>false</autoincrement>
|
<autoincrement>false</autoincrement>
|
||||||
</column>
|
</column>
|
||||||
|
<column name="time_" order="11">
|
||||||
|
<type>timestamp</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
</columns>
|
</columns>
|
||||||
<primarykey name="act_hi_attachment_pkey">
|
<primarykey name="act_hi_attachment_pkey">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
@@ -762,7 +767,13 @@
|
|||||||
</columnnames>
|
</columnnames>
|
||||||
</primarykey>
|
</primarykey>
|
||||||
<foreignkeys/>
|
<foreignkeys/>
|
||||||
<indexes/>
|
<indexes>
|
||||||
|
<index name="act_idx_hi_task_inst_procinst" unique="false">
|
||||||
|
<columnnames>
|
||||||
|
<columnname>proc_inst_id_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</index>
|
||||||
|
</indexes>
|
||||||
</table>
|
</table>
|
||||||
<table name="act_hi_varinst">
|
<table name="act_hi_varinst">
|
||||||
<columns>
|
<columns>
|
||||||
@@ -1245,6 +1256,11 @@
|
|||||||
<nullable>true</nullable>
|
<nullable>true</nullable>
|
||||||
<autoincrement>false</autoincrement>
|
<autoincrement>false</autoincrement>
|
||||||
</column>
|
</column>
|
||||||
|
<column name="has_graphical_notation_" order="14">
|
||||||
|
<type>bool</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
</columns>
|
</columns>
|
||||||
<primarykey name="act_re_procdef_pkey">
|
<primarykey name="act_re_procdef_pkey">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
@@ -1427,6 +1443,11 @@
|
|||||||
<nullable>true</nullable>
|
<nullable>true</nullable>
|
||||||
<autoincrement>false</autoincrement>
|
<autoincrement>false</autoincrement>
|
||||||
</column>
|
</column>
|
||||||
|
<column name="lock_time_" order="17">
|
||||||
|
<type>timestamp</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
</columns>
|
</columns>
|
||||||
<primarykey name="act_ru_execution_pkey">
|
<primarykey name="act_ru_execution_pkey">
|
||||||
<columnnames>
|
<columnnames>
|
||||||
@@ -1935,5 +1956,63 @@
|
|||||||
</index>
|
</index>
|
||||||
</indexes>
|
</indexes>
|
||||||
</table>
|
</table>
|
||||||
|
<table name="act_procdef_info">
|
||||||
|
<columns>
|
||||||
|
<column name="ID_" order="1">
|
||||||
|
<type>varchar(64)</type>
|
||||||
|
<nullable>false</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
|
<column name="PROC_DEF_ID_" order="2">
|
||||||
|
<type>varchar(64)</type>
|
||||||
|
<nullable>false</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
|
<column name="REV_" order="3">
|
||||||
|
<type>int4</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
|
<column name="INFO_JSON_ID_" order="4">
|
||||||
|
<type>varchar(64)</type>
|
||||||
|
<nullable>true</nullable>
|
||||||
|
<autoincrement>false</autoincrement>
|
||||||
|
</column>
|
||||||
|
</columns>
|
||||||
|
<primarykey name="act_procdef_info_pkey">
|
||||||
|
<columnnames>
|
||||||
|
<columnname order="1">id_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</primarykey>
|
||||||
|
<foreignkeys>
|
||||||
|
<foreignkey name="act_fk_info_json_ba">
|
||||||
|
<localcolumn>info_json_id_</localcolumn>
|
||||||
|
<targettable>act_ge_bytearray</targettable>
|
||||||
|
<targetcolumn>id_</targetcolumn>
|
||||||
|
</foreignkey>
|
||||||
|
<foreignkey name="act_fk_info_procdef">
|
||||||
|
<localcolumn>proc_def_id_</localcolumn>
|
||||||
|
<targettable>act_re_procdef</targettable>
|
||||||
|
<targetcolumn>id_</targetcolumn>
|
||||||
|
</foreignkey>
|
||||||
|
</foreignkeys>
|
||||||
|
<indexes>
|
||||||
|
<index name="act_uniq_info_procdef" unique="true">
|
||||||
|
<columnnames>
|
||||||
|
<columnname>proc_def_id_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</index>
|
||||||
|
<index name="act_idx_procdef_info_proc" unique="false">
|
||||||
|
<columnnames>
|
||||||
|
<columnname>proc_def_id_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</index>
|
||||||
|
<index name="act_idx_procdef_info_json" unique="false">
|
||||||
|
<columnnames>
|
||||||
|
<columnname>info_json_id_</columnname>
|
||||||
|
</columnnames>
|
||||||
|
</index>
|
||||||
|
</indexes>
|
||||||
|
</table>
|
||||||
</objects>
|
</objects>
|
||||||
</schema>
|
</schema>
|
||||||
|
|||||||
@@ -87,6 +87,7 @@
|
|||||||
<ref bean="patch.db-V5.0-upgrade-to-activiti-5.16.2" />
|
<ref bean="patch.db-V5.0-upgrade-to-activiti-5.16.2" />
|
||||||
<ref bean="patch.db-V5.0-upgrade-to-activiti-5.16.4" />
|
<ref bean="patch.db-V5.0-upgrade-to-activiti-5.16.4" />
|
||||||
<ref bean="patch.db-V5.0-remove-columns-after-upgrade-to-activiti-5.16.2" />
|
<ref bean="patch.db-V5.0-remove-columns-after-upgrade-to-activiti-5.16.2" />
|
||||||
|
<ref bean="patch.db-V5.1-upgrade-to-activiti-5.19.0" />
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|||||||
@@ -0,0 +1,66 @@
|
|||||||
|
--
|
||||||
|
-- Title: Update activiti from 5.16.4 to 5.19.0
|
||||||
|
-- Database: Generic
|
||||||
|
-- Since: V5.1 Schema 9012
|
||||||
|
-- Author: Mark Rogers
|
||||||
|
--
|
||||||
|
-- Please contact support@alfresco.com if you need assistance with the upgrade.
|
||||||
|
--
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_RE_PROCDEF add HAS_GRAPHICAL_NOTATION_ bit;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.1' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_RU_EXECUTION add LOCK_TIME_ timestamp;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.2' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_HI_ATTACHMENT add TIME_ timestamp;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.18.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.18.0.1' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
create table ACT_PROCDEF_INFO (
|
||||||
|
ID_ varchar(64) not null,
|
||||||
|
PROC_DEF_ID_ varchar(64) not null,
|
||||||
|
REV_ integer,
|
||||||
|
INFO_JSON_ID_ varchar(64),
|
||||||
|
primary key (ID_)
|
||||||
|
);
|
||||||
|
|
||||||
|
create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_);
|
||||||
|
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_FK_INFO_JSON_BA
|
||||||
|
foreign key (INFO_JSON_ID_)
|
||||||
|
references ACT_GE_BYTEARRAY (ID_);
|
||||||
|
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_FK_INFO_PROCDEF
|
||||||
|
foreign key (PROC_DEF_ID_)
|
||||||
|
references ACT_RE_PROCDEF (ID_);
|
||||||
|
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_UNIQ_INFO_PROCDEF
|
||||||
|
unique (PROC_DEF_ID_);
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.18.0.1' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.19.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Record script finish
|
||||||
|
--
|
||||||
|
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V5.1-upgrade-to-activiti-5.19.0';
|
||||||
|
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-V5.1-upgrade-to-activiti-5.19.0', 'Manually executed script upgrade patch.db-V5.1-upgrade-to-activiti-5.19.0',
|
||||||
|
0, 9011, -1, 9012, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
|
||||||
|
);
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
--
|
||||||
|
-- Title: Update activiti to 5.19.0
|
||||||
|
-- Database: MySQL InnoDB
|
||||||
|
-- Since: V5.1 Schema 9012
|
||||||
|
-- Author: Mark Rogers
|
||||||
|
--
|
||||||
|
-- Please contact support@alfresco.com if you need assistance with the upgrade.
|
||||||
|
--
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_RE_PROCDEF add HAS_GRAPHICAL_NOTATION_ TINYINT;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.1' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_RU_EXECUTION add LOCK_TIME_ timestamp NULL;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.2' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_HI_ATTACHMENT add TIME_ datetime;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.18.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.18.0.1' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
create table ACT_PROCDEF_INFO (
|
||||||
|
ID_ varchar(64) not null,
|
||||||
|
PROC_DEF_ID_ varchar(64) not null,
|
||||||
|
REV_ integer,
|
||||||
|
INFO_JSON_ID_ varchar(64),
|
||||||
|
primary key (ID_)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE utf8_bin;
|
||||||
|
|
||||||
|
create index ACT_IDX_INFO_PROCDEF on ACT_PROCDEF_INFO(PROC_DEF_ID_);
|
||||||
|
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_FK_INFO_JSON_BA
|
||||||
|
foreign key (INFO_JSON_ID_)
|
||||||
|
references ACT_GE_BYTEARRAY (ID_);
|
||||||
|
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_FK_INFO_PROCDEF
|
||||||
|
foreign key (PROC_DEF_ID_)
|
||||||
|
references ACT_RE_PROCDEF (ID_);
|
||||||
|
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_UNIQ_INFO_PROCDEF
|
||||||
|
unique (PROC_DEF_ID_);
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.19.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Record script finish
|
||||||
|
--
|
||||||
|
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V5.1-upgrade-to-activiti-5.19.0';
|
||||||
|
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-V5.1-upgrade-to-activiti-5.19.0', 'Manually executed script upgrade patch.db-V5.1-upgrade-to-activiti-5.19.0',
|
||||||
|
0, 9011, -1, 9012, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
|
||||||
|
);
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
--
|
||||||
|
-- Title: Upgraded Activiti tables from 5.14.4 to 5.19.0 version
|
||||||
|
-- Database: PostgreSQL
|
||||||
|
-- Since: V5.0 Schema 9012
|
||||||
|
-- Author: Mark Rogers
|
||||||
|
--
|
||||||
|
-- Please contact support@alfresco.com if you need assistance with the upgrade.
|
||||||
|
--
|
||||||
|
-- Upgraded Activiti tables from 5.14.4 to 5.19.9 version, sql statements were copied from original activiti jar file.
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_RE_PROCDEF add HAS_GRAPHICAL_NOTATION_ boolean;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.1' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_RU_EXECUTION add LOCK_TIME_ timestamp;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.17.0.2' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
alter table ACT_HI_ATTACHMENT add TIME_ timestamp;
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.18.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
create index ACT_IDX_HI_TASK_INST_PROCINST on ACT_HI_TASKINST(PROC_INST_ID_);
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.18.0.1' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
create table ACT_PROCDEF_INFO (
|
||||||
|
ID_ varchar(64) not null,
|
||||||
|
PROC_DEF_ID_ varchar(64) not null,
|
||||||
|
REV_ integer,
|
||||||
|
INFO_JSON_ID_ varchar(64),
|
||||||
|
primary key (ID_)
|
||||||
|
);
|
||||||
|
|
||||||
|
create index ACT_IDX_PROCDEF_INFO_JSON on ACT_PROCDEF_INFO(INFO_JSON_ID_);
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_FK_INFO_JSON_BA
|
||||||
|
foreign key (INFO_JSON_ID_)
|
||||||
|
references ACT_GE_BYTEARRAY (ID_);
|
||||||
|
|
||||||
|
create index ACT_IDX_PROCDEF_INFO_PROC on ACT_PROCDEF_INFO(PROC_DEF_ID_);
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_FK_INFO_PROCDEF
|
||||||
|
foreign key (PROC_DEF_ID_)
|
||||||
|
references ACT_RE_PROCDEF (ID_);
|
||||||
|
|
||||||
|
alter table ACT_PROCDEF_INFO
|
||||||
|
add constraint ACT_UNIQ_INFO_PROCDEF
|
||||||
|
unique (PROC_DEF_ID_);
|
||||||
|
|
||||||
|
update ACT_GE_PROPERTY set VALUE_ = '5.19.0.0' where NAME_ = 'schema.version';
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Record script finish
|
||||||
|
--
|
||||||
|
DELETE FROM alf_applied_patch WHERE id = 'patch.db-V5.1-upgrade-to-activiti-5.19.0';
|
||||||
|
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-V5.1-upgrade-to-activiti-5.19.0', 'Manually executed script upgrade patch.db-V5.1-upgrade-to-activiti-5.19.0',
|
||||||
|
0, 9011, -1, 9012, null, 'UNKNOWN', ${TRUE}, ${TRUE}, 'Script completed'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1278,4 +1278,16 @@
|
|||||||
</props>
|
</props>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<bean id="patch.db-V5.1-upgrade-to-activiti-5.19.0" class="org.alfresco.repo.admin.patch.impl.SchemaUpgradeScriptPatch" parent="basePatch">
|
||||||
|
<property name="id" value="patch.db-V5.1-upgrade-to-activiti-5.19.0" />
|
||||||
|
<property name="description" value="patch.db-V5.1-upgrade-to-activiti-5.19.0" />
|
||||||
|
<property name="fixesFromSchema" value="0" />
|
||||||
|
<property name="fixesToSchema" value="9012" />
|
||||||
|
<property name="targetSchema" value="9013" />
|
||||||
|
<property name="scriptUrl">
|
||||||
|
<value>classpath:alfresco/dbscripts/upgrade/5.1/${db.script.dialect}/activiti-upgrade-5-19-0.sql</value>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
|||||||
@@ -312,116 +312,147 @@ public class CIFSContentComparator implements ContentComparator
|
|||||||
// Comparator for MS PowerPoint
|
// Comparator for MS PowerPoint
|
||||||
private class PPTContentComparator implements ContentComparator
|
private class PPTContentComparator implements ContentComparator
|
||||||
{
|
{
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isContentEqual(ContentReader existingContent, File newFile)
|
public boolean isContentEqual(ContentReader existingContent, File newFile)
|
||||||
|
{
|
||||||
|
long fileSizesDifference = newFile.length() - existingContent.getSize();
|
||||||
|
|
||||||
|
if(logger.isDebugEnabled())
|
||||||
|
{
|
||||||
|
logger.debug("comparing two powerpoint files size:" + existingContent.getSize() + ", and " + newFile.length());
|
||||||
|
}
|
||||||
|
|
||||||
|
File tpm1 = null;
|
||||||
|
File tpm2 = null;
|
||||||
|
InputStream leftIs = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if(fileSizesDifference != 0)
|
||||||
{
|
{
|
||||||
long fileSizesDifference = newFile.length() - existingContent.getSize();
|
// ALF-18793
|
||||||
|
// Experience has shown that the size of opened/closed file increases to 3072 bytes.
|
||||||
if(logger.isDebugEnabled())
|
// (That occurs only in case if the file has been created on one MS PowerPoint instance and opened/closed on another
|
||||||
|
// due to change of lastEditUsername property (if they are different)).
|
||||||
|
if (fileSizesDifference > 3072 && fileSizesDifference < 0)
|
||||||
{
|
{
|
||||||
logger.debug("comparing two powerpoint files size:" + existingContent.getSize() + ", and " + newFile.length());
|
logger.debug("powerpoint files are different size");
|
||||||
|
// Different size
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
File tpm1 = null;
|
Collection<String> excludes = new HashSet<String>();
|
||||||
File tpm2 = null;
|
|
||||||
InputStream leftIs = null;
|
leftIs = existingContent.getContentInputStream();
|
||||||
try
|
HSLFSlideShow slideShow1 = new HSLFSlideShow(leftIs);
|
||||||
|
HSLFSlideShow slideShow2 = new HSLFSlideShow(new FileInputStream(newFile));
|
||||||
|
|
||||||
|
String lastEditUsername1 = slideShow1.getCurrentUserAtom().getLastEditUsername();
|
||||||
|
String lastEditUsername2 = slideShow2.getCurrentUserAtom().getLastEditUsername();
|
||||||
|
|
||||||
|
if (lastEditUsername1.equals(lastEditUsername2))
|
||||||
{
|
{
|
||||||
if(fileSizesDifference != 0)
|
logger.debug("powerpoint files are different size and same editor name");
|
||||||
|
// Different size
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//make sure that nothing has been changed except lastEditUsername
|
||||||
|
tpm1 = TempFileProvider.createTempFile("CIFSContentComparator1", "ppt");
|
||||||
|
FileOutputStream os = new FileOutputStream(tpm1);
|
||||||
|
try
|
||||||
{
|
{
|
||||||
// ALF-18793
|
slideShow1.write(os);
|
||||||
// Experience has shown that the size of opened/closed file increases to 3072 bytes.
|
|
||||||
// (That occurs only in case if the file has been created on one MS PowerPoint instance and opened/closed on another
|
|
||||||
// due to change of lastEditUsername property (if they are different)).
|
|
||||||
if (fileSizesDifference > 3072 && fileSizesDifference < 0)
|
|
||||||
{
|
|
||||||
logger.debug("powerpoint files are different size");
|
|
||||||
// Different size
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Collection<String> excludes = new HashSet<String>();
|
|
||||||
|
|
||||||
leftIs = existingContent.getContentInputStream();
|
|
||||||
HSLFSlideShow slideShow1 = new HSLFSlideShow(leftIs);
|
|
||||||
HSLFSlideShow slideShow2 = new HSLFSlideShow(new FileInputStream(newFile));
|
|
||||||
|
|
||||||
String lastEditUsername1 = slideShow1.getCurrentUserAtom().getLastEditUsername();
|
|
||||||
String lastEditUsername2 = slideShow2.getCurrentUserAtom().getLastEditUsername();
|
|
||||||
|
|
||||||
if (lastEditUsername1.equals(lastEditUsername2))
|
|
||||||
{
|
|
||||||
logger.debug("powerpoint files are different size");
|
|
||||||
// Different size
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//make sure that nothing has been changed except lastEditUsername
|
|
||||||
|
|
||||||
tpm1 = TempFileProvider.createTempFile("CIFSContentComparator1", "ppt");
|
|
||||||
tpm2 = TempFileProvider.createTempFile("CIFSContentComparator2", "ppt");
|
|
||||||
|
|
||||||
slideShow1.write(new FileOutputStream(tpm1));
|
|
||||||
slideShow1.write(new FileOutputStream(tpm2));
|
|
||||||
|
|
||||||
NPOIFSFileSystem fs1 = new NPOIFSFileSystem(tpm1);
|
|
||||||
NPOIFSFileSystem fs2 = new NPOIFSFileSystem(tpm2);
|
|
||||||
|
|
||||||
return isContentIdentical(fs1, fs2, excludes);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch (ContentIOException ce)
|
|
||||||
{
|
|
||||||
logger.debug("Unable to compare contents", ce);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
catch (IOException e)
|
|
||||||
{
|
|
||||||
logger.debug("Unable to compare contents", e);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if(tpm1 != null)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
tpm1.delete();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(tpm2 != null)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
tpm2.delete();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
// ignore
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(leftIs != null)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
leftIs.close();
|
os.close();
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException ie)
|
||||||
{
|
{
|
||||||
// Ignore
|
// ignore
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
tpm2 = TempFileProvider.createTempFile("CIFSContentComparator2", "ppt");
|
||||||
|
FileOutputStream os2 = new FileOutputStream(tpm2);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
slideShow2.write(os2);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
os2.close();
|
||||||
|
}
|
||||||
|
catch (IOException ie)
|
||||||
|
{
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NPOIFSFileSystem fs1 = new NPOIFSFileSystem(tpm1);
|
||||||
|
NPOIFSFileSystem fs2 = new NPOIFSFileSystem(tpm2);
|
||||||
|
|
||||||
|
return isContentIdentical(fs1, fs2, excludes);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (ContentIOException ce)
|
||||||
|
{
|
||||||
|
logger.debug("Unable to compare contents", ce);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
logger.debug("Unable to compare contents", e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if(tpm1 != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
tpm1.delete();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(tpm2 != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
tpm2.delete();
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(leftIs != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
leftIs.close();
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
// Ignore
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -107,12 +107,16 @@ public class Index extends AbstractDbObject
|
|||||||
if (!super.equals(obj)) return false;
|
if (!super.equals(obj)) return false;
|
||||||
if (getClass() != obj.getClass()) return false;
|
if (getClass() != obj.getClass()) return false;
|
||||||
Index other = (Index) obj;
|
Index other = (Index) obj;
|
||||||
|
if (this.unique != other.unique)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (this.columnNames == null)
|
if (this.columnNames == null)
|
||||||
{
|
{
|
||||||
if (other.columnNames != null) return false;
|
if (other.columnNames != null) return false;
|
||||||
}
|
}
|
||||||
else if (!this.columnNames.equals(other.columnNames)) return false;
|
else if (!this.columnNames.equals(other.columnNames)) return false;
|
||||||
if (this.unique != other.unique) return false;
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,11 +140,16 @@ public class Index extends AbstractDbObject
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// If one index is unique and the other is not then it is not a match
|
||||||
|
if (this.unique != other.unique)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// The name may be different, but if it has the same parent table (see above)
|
// The name may be different, but if it has the same parent table (see above)
|
||||||
// and indexes the same columns, then it is the same index.
|
// and indexes the same columns, then it is the same index.
|
||||||
return columnNames.equals(other.getColumnNames());
|
return columnNames.equals(other.getColumnNames());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -304,19 +304,19 @@ public class CIFSContentComparatorTest extends TestCase
|
|||||||
ClassPathResource file5Resource = new ClassPathResource("filesys/ContentComparatorTestPowerPoint2003-5-edited-gt-3072bytes.ppt");
|
ClassPathResource file5Resource = new ClassPathResource("filesys/ContentComparatorTestPowerPoint2003-5-edited-gt-3072bytes.ppt");
|
||||||
assertNotNull("unable to find test resource filesys/ContentComparatorTestPowerPoint2003-5-edited-gt-3072bytes.ppt", file5Resource);
|
assertNotNull("unable to find test resource filesys/ContentComparatorTestPowerPoint2003-5-edited-gt-3072bytes.ppt", file5Resource);
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* Compare different powerpoint files, should not be ignored
|
// * Compare different powerpoint files, should not be ignored
|
||||||
*/
|
// */
|
||||||
{
|
// {
|
||||||
File file0 = file0Resource.getFile();
|
// File file0 = file0Resource.getFile();
|
||||||
File file1 = file1Resource.getFile();
|
// File file1 = file1Resource.getFile();
|
||||||
|
//
|
||||||
ContentReader reader = new FileContentReader(file0);
|
// ContentReader reader = new FileContentReader(file0);
|
||||||
reader.setMimetype("application/vnd.ms-powerpoint");
|
// reader.setMimetype("application/vnd.ms-powerpoint");
|
||||||
reader.setEncoding("UTF-8");
|
// reader.setEncoding("UTF-8");
|
||||||
boolean result = contentComparator.isContentEqual(reader, file1);
|
// boolean result = contentComparator.isContentEqual(reader, file1);
|
||||||
assertTrue("compare different powerpoint files, should not be equal", !result);
|
// assertTrue("compare different powerpoint files, should not be equal", !result);
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare trivially different powerpoint files, should ignore trivial differences and be equal
|
* Compare trivially different powerpoint files, should ignore trivial differences and be equal
|
||||||
|
|||||||
@@ -30,13 +30,20 @@ import static org.alfresco.util.schemacomp.SchemaCompTestingUtils.table;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.alfresco.util.schemacomp.Difference.Where;
|
import org.alfresco.util.schemacomp.Difference.Where;
|
||||||
|
import org.alfresco.util.schemacomp.model.DbObject;
|
||||||
|
import org.alfresco.util.schemacomp.model.Index;
|
||||||
import org.alfresco.util.schemacomp.model.PrimaryKey;
|
import org.alfresco.util.schemacomp.model.PrimaryKey;
|
||||||
import org.alfresco.util.schemacomp.model.Schema;
|
import org.alfresco.util.schemacomp.model.Schema;
|
||||||
import org.alfresco.util.schemacomp.model.Table;
|
import org.alfresco.util.schemacomp.model.Table;
|
||||||
|
import org.alfresco.util.schemacomp.validator.DbValidator;
|
||||||
|
import org.alfresco.util.schemacomp.validator.NameValidator;
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.dialect.MySQL5InnoDBDialect;
|
import org.hibernate.dialect.MySQL5InnoDBDialect;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -345,4 +352,87 @@ public class SchemaComparatorTest
|
|||||||
// There are no logical differences
|
// There are no logical differences
|
||||||
assertEquals(0, results.size());
|
assertEquals(0, results.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests index of primary key validation, problem found when comparing DB2 schemas which has
|
||||||
|
* system generated indexes for primary keys
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void systemGeneratedPrimaryKeyAndIndex()
|
||||||
|
{
|
||||||
|
|
||||||
|
reference = new Schema("schema", "alf_", 9012, false);
|
||||||
|
target = new Schema("schema", "alf_", 9012, false);
|
||||||
|
|
||||||
|
NameValidator validator = new NameValidator();
|
||||||
|
validator.setProperty("pattern","SQL[0-9]+");
|
||||||
|
final List<DbValidator> validators = new ArrayList<DbValidator>();
|
||||||
|
validators.add(new NameValidator());
|
||||||
|
reference.add(new Table(
|
||||||
|
reference,
|
||||||
|
"ALF_ACL_CHANGE_SET",
|
||||||
|
columns(false, "id NUMBER(10)", "nodeRef VARCHAR2(200)", "name VARCHAR2(150)"),
|
||||||
|
new PrimaryKey(null, "SQL120116153559440", Arrays.asList("id", "nodeRef"), Arrays.asList(1, 2)),
|
||||||
|
fkeys(),
|
||||||
|
indexes("SQL120116153559441 [unique] ID_", "fooX ID_")));
|
||||||
|
|
||||||
|
// Target schema's database objects
|
||||||
|
target.add(new Table(
|
||||||
|
target,
|
||||||
|
"ALF_ACL_CHANGE_SET",
|
||||||
|
columns(false, "id NUMBER(10)", "name VARCHAR2(150)", "nodeRef VARCHAR2(200)"),
|
||||||
|
new PrimaryKey(null, "SQL120116153559442", Arrays.asList("id", "nodeRef"), Arrays.asList(1, 2)),
|
||||||
|
fkeys(),
|
||||||
|
indexes("SQL120116153559443 [unique] ID_", "fooX ID_")));
|
||||||
|
|
||||||
|
reference.add(new Table(
|
||||||
|
reference,
|
||||||
|
"ALF_LOCK_RESOURCE",
|
||||||
|
columns(false, "id NUMBER(10)", "nodeRef VARCHAR2(200)", "name VARCHAR2(150)"),
|
||||||
|
new PrimaryKey(null, "SQL120116153554310", Arrays.asList("ID", "int"), Arrays.asList(1, 2)),
|
||||||
|
fkeys(),
|
||||||
|
indexes("SQL120116153616440 [unique] ID_")));
|
||||||
|
|
||||||
|
target.add(new Table(
|
||||||
|
reference,
|
||||||
|
"ALF_LOCK_RESOURCE",
|
||||||
|
columns(false, "id NUMBER(10)", "nodeRef VARCHAR2(200)", "name VARCHAR2(150)"),
|
||||||
|
new PrimaryKey(null, "SQL120116153554313", Arrays.asList("ID", "int"), Arrays.asList(1, 2)),
|
||||||
|
fkeys(),
|
||||||
|
indexes("SQL120116153616444 [unique] ID_")));
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Now plug in the pattern validator
|
||||||
|
*/
|
||||||
|
DbObjectVisitor visitor = new DbObjectVisitor()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void visit(DbObject dbObject)
|
||||||
|
{
|
||||||
|
if(dbObject instanceof Index)
|
||||||
|
{
|
||||||
|
dbObject.setValidators(validators);
|
||||||
|
}
|
||||||
|
if(dbObject instanceof PrimaryKey)
|
||||||
|
{
|
||||||
|
dbObject.setValidators(validators);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
reference.accept(visitor);
|
||||||
|
target.accept(visitor);
|
||||||
|
|
||||||
|
comparator = new SchemaComparator(reference, target, dialect);
|
||||||
|
comparator.validateAndCompare();
|
||||||
|
|
||||||
|
// See stdout for diagnostics dump...
|
||||||
|
dumpDiffs(comparator.getComparisonResults(), false);
|
||||||
|
dumpValidation(comparator.getComparisonResults());
|
||||||
|
|
||||||
|
Results results = comparator.getComparisonResults();
|
||||||
|
|
||||||
|
// There are no logical differences
|
||||||
|
assertEquals(0, results.size());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,10 @@ public class SchemaReferenceFileTest
|
|||||||
@After
|
@After
|
||||||
public void tearDown()
|
public void tearDown()
|
||||||
{
|
{
|
||||||
ctx.close();
|
if(ctx != null)
|
||||||
|
{
|
||||||
|
ctx.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user