No data migration is necessary from version 2.2.2 to 2.3.1.
The following tables describe database schema changes from version 2.2.1 to version 2.2.2.
Note: besides the below modifications, there are a few renames of index and foreign key names for naming consistency reasons only, which can be ignored and are not mentioned in the below tables either.
Table | Foreign Key |
---|---|
CUSTOM_PORTLET_MODE | FK_CUSTOM_PORTLET_MODE_1 |
CUSTOM_WINDOW_STATE | FK_CUSTOM_WINDOW_STATE_1 |
EVENT_DEFINITION | FK_EVENT_DEFINITION_1 |
PA_METADATA_FIELDS | FK_PA_METADATA_FIELDS_1 |
PD_METADATA_FIELDS | FK_PD_METADATA_FIELDS_1 |
SECURITY_ROLE | FK_SECURITY_ROLE_REF_1 |
USER_ATTRIBUTE | FK_USER_ATTRIBUTE_1 |
USER_ATTRIBUTE_REF | FK_USER_ATTRIBUTE_REF_1 |
Table | Index | Unique | Column(s) |
---|---|---|---|
FOLDER_MENU | IX_FOLDER_MENU_2 | non unique | FOLDER_ID |
PAGE_MENU | IX_PAGE_MENU_2 | non unique | PAGE_ID |
PRINCIPAL_PERMISSION | IX_PRINCIPAL_PERMISSION_2 | non unique | PRINICIPAL_ID |
RULE_CRITERION | IX_RULE_CRITERION_0 | non unique | RULE_ID |
Table | Column(s) |
---|---|
CLIENT_TO_CAPABILITY | CLIENT_ID, CAPABILITY_ID |
CLIENT_TO_MIMETYPE | CLIENT_ID, MIMETYPE_ID |
MEDIATYPE_TO_CAPABILITY | MEDIATYPE_ID, CAPABILITY_ID |
MEDIATYPE_TO_MIMETYPE | MEDIATYPE_ID, MIMETYPE_ID |
PROFILE_PAGE_ASSOC | LOCATOR_HASH, PAGE_ID |
Here is an example of a SQL migration script for a MySQL database:
ALTER TABLE CUSTOM_PORTLET_MODE DROP FOREIGN KEY FK_CUSTOM_PORTLET_MODE_1; ALTER TABLE CUSTOM_WINDOW_STATE DROP FOREIGN KEY FK_CUSTOM_WINDOW_STATE_1; ALTER TABLE EVENT_DEFINITION DROP FOREIGN KEY FK_EVENT_DEFINITION_1; ALTER TABLE PA_METADATA_FIELDS DROP FOREIGN KEY FK_PA_METADATA_FIELDS_1; ALTER TABLE PD_METADATA_FIELDS DROP FOREIGN KEY FK_PD_METADATA_FIELDS_1; ALTER TABLE SECURITY_ROLE DROP FOREIGN KEY FK_SECURITY_ROLE_REF_1; ALTER TABLE USER_ATTRIBUTE DROP FOREIGN KEY FK_USER_ATTRIBUTE_1; ALTER TABLE USER_ATTRIBUTE_REF DROP FOREIGN KEY FK_USER_ATTRIBUTE_REF_1; ALTER TABLE CUSTOM_PORTLET_MODE DROP INDEX FK_CUSTOM_PORTLET_MODE_1; ALTER TABLE CUSTOM_WINDOW_STATE DROP INDEX FK_CUSTOM_WINDOW_STATE_1; ALTER TABLE EVENT_DEFINITION DROP INDEX FK_EVENT_DEFINITION_1; ALTER TABLE PA_METADATA_FIELDS DROP INDEX FK_PA_METADATA_FIELDS_1; ALTER TABLE PD_METADATA_FIELDS DROP INDEX FK_PD_METADATA_FIELDS_1; ALTER TABLE SECURITY_ROLE DROP INDEX FK_SECURITY_ROLE_REF_1; ALTER TABLE USER_ATTRIBUTE DROP INDEX FK_USER_ATTRIBUTE_1; ALTER TABLE USER_ATTRIBUTE_REF DROP INDEX FK_USER_ATTRIBUTE_REF_1; ALTER TABLE PROFILE_PAGE_ASSOC DROP INDEX UN_PROFILE_PAGE_1; ALTER TABLE PORTLET_DEFINITION ADD COLUMN CLONE_PARENT VARCHAR(80); CREATE INDEX IX_FOLDER_MENU_2 ON FOLDER_MENU ( FOLDER_ID ); CREATE INDEX IX_PAGE_MENU_2 ON PAGE_MENU ( PAGE_ID ); CREATE INDEX IX_PRINICIPAL_PERMISSION_2 ON PRINCIPAL_PERMISSION ( PRINCIPAL_ID ); CREATE INDEX IX_RULE_CRITERION_0 ON RULE_CRITERION ( RULE_ID ); ALTER TABLE CLIENT_TO_CAPABILITY ADD PRIMARY KEY (CLIENT_ID, CAPABILITY_ID); ALTER TABLE CLIENT_TO_MIMETYPE ADD PRIMARY KEY (CLIENT_ID, MIMETYPE_ID); ALTER TABLE MEDIATYPE_TO_CAPABILITY ADD PRIMARY KEY (MEDIATYPE_ID, CAPABILITY_ID); ALTER TABLE MEDIATYPE_TO_MIMETYPE ADD PRIMARY KEY (MEDIATYPE_ID, MIMETYPE_ID); ALTER TABLE PROFILE_PAGE_ASSOC ADD PRIMARY KEY (LOCATOR_HASH, PAGE_ID );
Extensive schema changes were made between the 2.1 and 2.2 versions related to the Portlet API 2.0 Standard implementation, the Pluto 2.0 integration, and the refactoring of the security and SSO components. Here is a summary of the table modifications that were made:
Registry and Preferences Table Name | Modification |
---|---|
CUSTOM_PORTLET_MODE | columns changed |
CUSTOM_WINDOW_STATE | columns changed |
EVENT_ALIAS | new table |
EVENT_DEFINITION | new table |
FILTERED_PORTLET | new table |
FILTER_LIFECYCLE | new table |
FILTER_MAPPING | new table |
LANGUAGE | columns changed |
LOCALE_ENCODING_MAPPING | new table |
LOCALIZED_DESCRIPTION | columns changed |
LOCALIZED_DISPLAY_NAME | columns changed |
NAMED_PARAMETER | new table |
PARAMETER | columns changed |
PARAMETER_ALIAS | new table |
PA_SECURITY_CONSTRAINT | new table |
PORTLET_APPLICATION | columns changed |
PORTLET_CONTENT_TYPE | deleted |
PORTLET_DEFINITION | columns changed |
PORTLET_ENTITY | deleted |
PORTLET_FILTER | new table |
PORTLET_LISTENER | new table |
PORTLET_PREFERENCE | new table |
PORTLET_PREFERENCE_VALUE | new table |
PORTLET_SUPPORTS | new table |
PREFS_NODE | deleted |
PREFS_PROPERTY_VALUE | deleted |
PROCESSING_EVENT | new table |
PUBLIC_PARAMETER | new table |
PUBLISHING_EVENT | new table |
RUNTIME_OPTION | new table |
RUNTIME_VALUE | new table |
SECURED_PORTLET | new table |
SECURITY_ROLE | columns and constraints changed |
USER_ATTRIBUTE | columns changed |
WEB_APPLICATION | deleted |
Security and SSO Table Name | Modification |
---|---|
SECURITY_ATTRIBUTE | new table |
SECURITY_CREDENTIAL | columns changed |
SECURITY_DOMAIN | new table |
SECURITY_GROUP_ROLE | deleted |
SECURITY_PERMISSION | columns and constraints changed |
SECURITY_PRINCIPAL | columns and constraints changed |
SECURITY_PRINCIPAL_ASSOC | new table |
SECURITY_USER_GROUP | deleted |
SECURITY_USER_ROLE | deleted |
SSO_COOKIE | deleted |
SSO_COOKIE_TO_REMOTE | deleted |
SSO_PRINCIPAL_TO_REMOTE | deleted |
SSO_SITE | columns and constraints changed |
SSO_SITE_TO_PRINCIPALS | deleted |
SSO_SITE_TO_REMOTE | deleted |
Statisitics Table Name | Modification |
---|---|
ADMIN_ACTIVITY | column sizes changed |
USER_ACTIVITY | column sizes changed |
Given the extensive modifications made between these releases, migration is best performed using an ETL approach. To support this outside of the Jetspeed portal build and runtime environments, export, initialization, and import functionality have been integrated into the Jetspeed installer. The installer can be downloaded as a binary and, together with a JDBC driver, can be used to migrate from 2.1.3/2.1.4 to 2.2.1.
Documentation for ETL migration using the Jetspeed installer can be found here: ETL Migration Guide. Note that migration of Derby databases using the installer is not currently supported.
The following tables describe database schema changes from version 2.1.3 to version 2.1.4.
The following tables describe database schema changes from version 2.1.3 to version 2.1.2.
Table | Index | type | column(s) |
---|---|---|---|
PREFS_NODE | IX_PREFS_NODE_1 | non unique | PARENT_NODE_ID |
PREFS_NODE | IX_PREFS_NODE_2 | non unique | FULL_PATH |
PREFS_PROPERTY_VALUE | IX_FKPPV_1 | non unique | NODE_ID |
Table | Name | Column(s) | Referencing table | Referencing column(s) | 2.1.2 | 2.1.3 |
---|---|---|---|---|---|---|
PREFS_NODE | FK_PREFS_NODE_1 | PARENT_NODE_ID | PREFS_NODE | NODE_ID | (not casade delete) | CASCADE DELETE |
PREFS_PROPERTY_VALUE | (not named) | NODE_ID | PREFS_NODE | NODE_ID | (not casade delete) | CASCADE DELETE |
Here is an example of the SQL migration scripts for the MySQL database:
CREATE INDEX IX_PREFS_NODE_1 ON PREFS_NODE (PARENT_NODE_ID); CREATE INDEX IX_PREFS_NODE_2 ON PREFS_NODE (FULL_PATH); CREATE INDEX IX_FKPPV_1 ON PREFS_PROPERTY_VALUE (NODE_ID); ALTER TABLE PREFS_NODE ADD CONSTRAINT FK_PREFS_NODE_1 FOREIGN KEY (PARENT_NODE_ID) REFERENCES PREFS_NODE (NODE_ID) ON DELETE CASCADE; ALTER TABLE PREFS_PROPERTY_VALUE ADD CONSTRAINT FK_PREFS_PROPERTY_VALUE_1 FOREIGN KEY (NODE_ID) REFERENCES PREFS_NODE (NODE_ID) ON DELETE CASCADE;
Here is an example of the SQL migration scripts for the MySQL database:
CREATE INDEX IX_PREFS_NODE_1 ON PREFS_NODE (PARENT_NODE_ID); CREATE INDEX IX_PREFS_NODE_2 ON PREFS_NODE (FULL_PATH); CREATE INDEX IX_FKPPV_1 ON PREFS_PROPERTY_VALUE (NODE_ID); ALTER TABLE PREFS_NODE ADD CONSTRAINT FK_PREFS_NODE_1 FOREIGN KEY (PARENT_NODE_ID) REFERENCES PREFS_NODE (NODE_ID) ON DELETE CASCADE; ALTER TABLE PREFS_PROPERTY_VALUE ADD CONSTRAINT FK_PREFS_PROPERTY_VALUE_1 FOREIGN KEY (NODE_ID) REFERENCES PREFS_NODE (NODE_ID) ON DELETE CASCADE;
The following tables describe database schema changes from version 2.1 to version 2.1.2.
The following items describe important functional changes in Jetspeed 2.1
Version 2.1 is the first Jetspeed version to support Portlet API Caching. In 2.0 the expiration-cache was set to -1 (infinity time) for all layouts in the file WEB-INF\apps\jetspeed-layouts\WEB-INF\portlet.xml. When upgrading to version 2.1 or greater from 2.0, you will need to update your database to disable portlet caching on the Jetspeed layouts. Updating the layouts can be achieved by either redeploying the jetspeed-layouts portlet application, or by updating your database as shown below (assuming the APPLICATION_ID value is 2) for the jetspeed-layouts application.
UPDATE PORTLET_DEFINITION P SET EXPIRATION_CACHE = 0 WHERE P.APPLICATION_ID = 2
Portlet Preferences are now by default user specific on all pages. In Jetspeed 2.0, for shared pages, the Portlet Preferences were shared as well.
To retain most of the old Jetspeed 2.0 behavior, allowing an administrator to still set/modify initial Preferences for other users,
modify the following setting in the registry.xml spring assembly configuration for the portletEntityAccessImpl component:
<!-- All preferences were shared. With JS2-449, preferences are now stored 'per user'. The username is stored in the preferences FULL_PATH To turn on mergeSharedPreferences configure this property to true This will NOT turn off per user prefs, but instead merge with them, where user prefs override. boolean --> <constructor-arg type="boolean"> <value>false</value> </constructor-arg>
The following tables describe database schema changes from version 2.0 to version 2.1.
Table | Column | 2.0 | 2.1 |
---|---|---|---|
PORTLET_STATISTICS | ELAPSED_TIME | INTEGER | BIGINT |
PAGE_STATISTICS | ELAPSED_TIME | INTEGER | BIGINT |
USER_STATISTICS | ELAPSED_TIME | INTEGER | BIGINT |
FOLDER | SKIN | NEW: VARCHAR(80) | |
FOLDER | DEFAULT_LAYOUT_DECORATOR | NEW: VARCHAR(80) | |
FOLDER | DEFAULT_PORTLET_DECORATOR | NEW: VARCHAR(80) | |
FRAGMENT | STATE | VARCHAR(40) | VARCHAR(10) |
FRAGMENT | PMODE | NEW: VARCHAR(10) | |
FRAGMENT | LAYOUT_X | NEW: REAL | |
FRAGMENT | LAYOUT_Y | NEW: REAL | |
FRAGMENT | LAYOUT_Z | NEW: REAL | |
FRAGMENT | LAYOUT_WIDTH | NEW: REAL | |
FRAGMENT | LAYOUT_HEIGHT | NEW: REAL | |
LINK | SKIN | NEW: VARCHAR(80) | |
PORTLET_DEFINITION | SECURITY_REF | NEW: VARCHAR(40) | |
PORTLET_DEFINITION | SECURITY_REF | NEW: VARCHAR(40) | |
PORTLET_APPLICATION | SECURITY_REF | NEW: VARCHAR(40) | |
SSO_COOKIE | COOKIE | VARCHAR(250) | VARCHAR(1024) |
Table | Index | 2.0 | 2.1 |
---|---|---|---|
FOLDER_MENU | UN_FOLDER_MENU_1 | unique | (non unique) index |
PAGE_MENU | UN_PAGE_MENU_1 | unique | (non unique) index |
FRAGMENT | UN_FRAGMENT_1 | unique | (non unique) index |
Table | Column | 2.0 | 2.1 |
---|---|---|---|
FOLDER | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_1" |
FOLDER_METADATA | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_METADATA_1" |
FOLDER_CONSTRAINT | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_CONSTRAINT_1" |
FOLDER_CONSTRAINTS_REF | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_CONSTRAINT_REF_1" |
FOLDER_ORDER | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_ORDER_1" |
FOLDER_MENU | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_MENU_1" |
FOLDER_MENU | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_MENU_2" |
FOLDER_MENU_METADATA | (FK constraint) | (not named) | named FK constraint "FK_FOLDER_MENU_METADATA_1" |
PAGE | (FK constraint) | (not named) | named FK constraint "FK_PAGE_1" |
PAGE_METADATA | (FK constraint) | (not named) | named FK constraint "FK_PAGE_METADATA_1" |
PAGE_CONSTRAINT | (FK constraint) | (not named) | named FK constraint "FK_PAGE_CONSTRAINT_1" |
PAGE_CONSTRAINT_REF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_CONSTRAINTS_REF_1" |
PAGE_MENU | (FK constraint) | (not named) | named FK constraint "FK_PAGE_MENU_1" |
PAGE_MENU | (FK constraint) | (not named) | named FK constraint "PM_M_FK_PAGE_ID_PAGE" |
PAGE_MENU_METADATA | (FK constraint) | (not named) | named FK constraint "FK_PAGE_MENU_METADATA_1" |
FRAGMENT | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_1" |
FRAGMENT | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_2" |
FRAGMENT_CONSTRAINT | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_CONSTRAINT_1" |
FRAGMENT_CONSTRAINT_REF | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_CONSTRAINT_REF_1" |
FRAGMENT_PREF | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_PREF_1" |
FRAGMENT_PREF_VALUE | (FK constraint) | (not named) | named FK constraint "FK_FRAGMENT_PREF_VALUE_1" |
LINK | (FK constraint) | (not named) | named FK constraint "FK_LINK_1" |
LINK_METADATA | (FK constraint) | (not named) | named FK constraint "FK_LINK_METADATA_1" |
LINK_CONSTRAINT | (FK constraint) | (not named) | named FK constraint "FK_LINK_CONSTRAINT_1" |
LINK_CONSTRAINT_REF | (FK constraint) | (not named) | named FK constraint "FK_LINK_CONSTRAINT_REF_1" |
PAGE_SECURITY | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SECURITY_1" |
PAGE_SEC_CONSTRAINTS_DEF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SEC_CONSTRAINTS_DEF_1" |
PAGE_SEC_CONSTRAINT_DEF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SEC_CONSTRAINT_DEF_1" |
PAGE_SEC_CONSTRAINTS_REF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SEC_CONSTRAINTS_REF_1" |
PAGE_SEC_CONSTRAINT_REF | (FK constraint) | (not named) | named FK constraint "FK_PAGE_SEC_CONSTRAINT_REF_1" |
RULE_CRITERION | (FK constraint) | (not named) | named FK constraint "FK_RULE_CRITERION_1" |
PREFS_NODE | (FK constraint) | (not named) | named FK constraint "FK_PREFS_NODE_1" |
PA_METADATA_FIELDS | (FK constraint) | (not named) | named FK constraint "FK_PA_METADATA_FIELDS_1" |
PD_METADATA_FIELDS | (FK constraint) | (not named) | named FK constraint "FK_PD_METADATA_FIELDS_1" |
USER_ATTRIBUTE_REF | (FK constraint) | (not named) | named FK constraint "FK_USER_ATTRIBUTE_REF_1" |
USER_ATTRIBUTE | (FK constraint) | (not named) | named FK constraint "FK_USER_ATTRIBUTE_1" |
PRINCIPAL_PERMISSION | (FK constraint) | (not named) | named FK constraint "FK_PRINCIPAL_PERMISSION_1" |
PRINCIPAL_PERMISSION | (FK constraint) | (not named) | named FK constraint "FK_PRINCIPAL_PERMISSION_2" |
SECURITY_CREDENTIAL | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_CREDENTIAL_1" |
SSO_SITE_TO_PRINCIPALS | (FK constraint) | (not named) | named FK constraint "SSO_SITE_TO_PRINC_FK1" |
SSO_SITE_TO_PRINCIPALS | (FK constraint) | (not named) | named FK constraint "SSO_SITE_TO_PRINC_FK2" |
SSO_PRINCIPAL_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_PRINCIPAL_TO_REMOTE_1" |
SSO_PRINCIPAL_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_PRINCIPAL_TO_REMOTE_2" |
SSO_SITE_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_SITE_TO_REMOTE_1" |
SSO_SITE_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_SITE_TO_REMOTE_2" |
SSO_COOKIE_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_COOKIE_TO_REMOTE_1" |
SSO_COOKIE_TO_REMOTE | (FK constraint) | (not named) | named FK constraint "FK_SSO_COOKIE_TO_REMOTE_2" |
SECURITY_USER_ROLE | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_USER_ROLE_1" |
SECURITY_USER_ROLE | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_USER_ROLE_2" |
SECURITY_USER_GROUP | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_USER_GROUP_1" |
SECURITY_USER_GROUP | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_USER_GROUP_2" |
SECURITY_GROUP_ROLE | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_GROUP_ROLE_1" |
SECURITY_GROUP_ROLE | (FK constraint) | (not named) | named FK constraint "FK_SECURITY_GROUP_ROLE_2" |