Rem drv:
Rem
Rem $Header: swlib_schema_upgrade.sql 25-jul-2005.14:04:31 chyu Exp $
Rem
Rem swlib_schema_upgrade.sql
Rem
Rem Copyright (c) 2005, Oracle. All rights reserved.
Rem
Rem NAME
Rem swlib_schema_upgrade.sql -
Rem
Rem DESCRIPTION
Rem
Rem
Rem NOTES
Rem
Rem
Rem MODIFIED (MM/DD/YY)
Rem chyu 07/25/05 - modifying the upgrade header
Rem chyu 07/18/05 - adding the header
Rem wsmit 07/12/05 - check semicolon
Rem wsmit 05/20/05 - lengthen fields
Rem kashukla 04/08/05 -
Rem eujang 03/10/05 - eujang_rep_upgrade_debug
Rem kashukla 03/01/05 - Created
Rem
SET ECHO ON
SET FEEDBACK 1
SET NUMWIDTH 10
SET LINESIZE 80
SET TRIMSPOOL ON
SET TAB OFF
SET PAGESIZE 100
DEFINE EM_ECM_DEPOT_TABLESPACE = "&1"
--This table holds the entries for all directories created within
--the software library.
--Deletion of a directory will delete all the child directories.
CREATE TABLE "MGMT_SWLIB_DIRECTORIES"(
DIRECTORY_ID RAW(16) DEFAULT SYS_GUID()
CONSTRAINT "MSD_PK" PRIMARY KEY,
NAME NVARCHAR2(64) NOT NULL,
PARENT_ID CONSTRAINT "MSD_MSD_FK"
REFERENCES MGMT_SWLIB_DIRECTORIES("DIRECTORY_ID")
ON DELETE CASCADE,
DESCRIPTION NVARCHAR2(256) DEFAULT '',
OWNER NVARCHAR2(64),
CREATED_DATE DATE DEFAULT SYSDATE
)
MONITORING;
--All entities are created here.
--Dependent on MGMT_SWLIB_DIRECTORIES and will not allow deletion
--of the directory unless the entity is disassociated from it.
CREATE TABLE "MGMT_SWLIB_ENTITIES"(
ENTITY_ID RAW(16) DEFAULT SYS_GUID()
CONSTRAINT "MSE_PK" PRIMARY KEY,
NAME NVARCHAR2(64) NOT NULL,
OWNER NVARCHAR2(64) NOT NULL,
CREATION_DATE DATE DEFAULT SYSDATE,
DESCRIPTION NVARCHAR2(256) DEFAULT '',
TYPE NVARCHAR2(64) NOT NULL, --Deployment Recipe, Oracle Home
--Image etc
DIRECTORY_ID CONSTRAINT "MSE_MSD_FK"
REFERENCES MGMT_SWLIB_DIRECTORIES("DIRECTORY_ID")
ON DELETE SET NULL,
VENDOR NVARCHAR2(64)
)
MONITORING;
--The set of global maturity status values to be used across the
--SW Library entities. We will populate this table with an initial
--set of meaningful values. We will also allow addition to this set
--via the Java API's. These statuses will be ordered from least mature
--to most mature.
CREATE TABLE "MGMT_SWLIB_MATURITY_STATUS"(
MATURITY_STATUS_ID NUMBER(2) CONSTRAINT "MSMS_PK" PRIMARY KEY,
MATURITY_STATUS VARCHAR2(16)
)
MONITORING;
--This table holds the entries for the versions of an entity.
--Deletion of an entity will delete all versions of the entity.
--Deletion of a maturity status can be done only after all entity
--versions refering to the status has been modified appropriately.
CREATE TABLE "MGMT_SWLIB_ENTITY_REVISIONS"(
REVISION_ID RAW(16) DEFAULT SYS_GUID()
CONSTRAINT "MSERV_PK" PRIMARY KEY,
ENTITY_ID NOT NULL
CONSTRAINT "MSERV_MSE_FK"
REFERENCES MGMT_SWLIB_ENTITIES("ENTITY_ID")
ON DELETE CASCADE,
REVISION NVARCHAR2(16) NOT NULL,
MODIFIED_DATE DATE DEFAULT SYSDATE,
REVISION_AUTHOR NVARCHAR2(64),
MATURITY_STATUS_ID CONSTRAINT "MSERV_MSMS_FK"
REFERENCES MGMT_SWLIB_MATURITY_STATUS("MATURITY_STATUS_ID"),
STATUS NUMBER(2), --Incomplete, Active, Deleted
PRODUCT NVARCHAR2(64),
PRODUCT_VERSION NVARCHAR2(16),
DATA_TYPE VARCHAR2(64),
CHECKSUM RAW(16),
IS_CURRENT NUMBER(1) --Y/N
)
MONITORING;
--This table holds the entity versions referenced by other entities.
--SOURCE_ID points to the Referer and TARGET_ID points to the Referee
--Deletion of a source entity can be done only if there are no references
--from it. Deletion of a target entity should result in a null TARGET_ID.
CREATE TABLE "MGMT_SWLIB_ENTITY_REFERENCES"(
REFERENCE_ID RAW(16) DEFAULT SYS_GUID()
CONSTRAINT "MSER_PK" PRIMARY KEY,
SOURCE_ID NOT NULL
CONSTRAINT "MSER_MSERV_FK"
REFERENCES MGMT_SWLIB_ENTITY_REVISIONS("REVISION_ID"),
NAME NVARCHAR2(64) NOT NULL,
TYPE NVARCHAR2(64),--Type of entity refered to
--Deployment Recipe, Oracle Home, Image etc
REFINDEX NUMBER(10), -- index for ensuring order (some headroom)
TARGET_ID CONSTRAINT "MSER_MSE_FK"
REFERENCES MGMT_SWLIB_ENTITIES("ENTITY_ID")
ON DELETE SET NULL,
TARGET_REVISION_ID CONSTRAINT "MSER_MSERV_FK2"
REFERENCES MGMT_SWLIB_ENTITY_REVISIONS("REVISION_ID")
ON DELETE SET NULL,
TARGET_PRODUCTION NUMBER(1)
CHECK(TARGET_PRODUCTION IN (0, --0 for CURRENT
1) --1 for PRODUCTION
)
)
MONITORING;
--This table holds the collateral document associated with a reference.
--Deletion of a reference will delete the associated document.
--Deletion of the entity version will be allowed only when the associated
--references and documents are modified appropriately.
CREATE TABLE "MGMT_SWLIB_ENTITY_DOCUMENTS"(
REVISION_ID CONSTRAINT "MSED_MSERV_FK"
REFERENCES MGMT_SWLIB_ENTITY_REVISIONS("REVISION_ID"),
NAME NVARCHAR2(64) NOT NULL,
REFERENCE_ID CONSTRAINT "MSED_MSER_FK"
REFERENCES MGMT_SWLIB_ENTITY_REFERENCES("REFERENCE_ID")
ON DELETE CASCADE,
VALUE CLOB
)
LOB (VALUE)
STORE AS (TABLESPACE &EM_ECM_DEPOT_TABLESPACE)
MONITORING;
--This table holds the data associated with the entity.
--Deletion of the entity version will be allowed only when the associated
--entity data has been deleted.
CREATE TABLE "MGMT_SWLIB_ENTITY_DATA"(
REVISION_ID CONSTRAINT "MSEDA_MSERV_FK"
REFERENCES MGMT_SWLIB_ENTITY_REVISIONS("REVISION_ID")
ON DELETE CASCADE,
EXTERNAL_KEY NVARCHAR2(256),--if data is stored externally,will point to approp source
DATA BLOB
)
LOB (DATA)
STORE AS (TABLESPACE &EM_ECM_DEPOT_TABLESPACE)
MONITORING;
--This table holds the application-specific metadata information as name
--value pairs.
--Deletion of the entity will delete all entity parameters associated
--with it.
CREATE TABLE "MGMT_SWLIB_ENTITY_PARAMETERS"(
ENTITY_ID CONSTRAINT "MSEP_MSE_FK"
REFERENCES MGMT_SWLIB_ENTITIES("ENTITY_ID")
ON DELETE CASCADE,
NAME NVARCHAR2(64),
VALUE NVARCHAR2(256)
)
MONITORING;
--This table holds the revision-specific metadata information as name
--value pairs.
--Deletion of the entity will delete all the revision parameter associated
--with it.
CREATE TABLE "MGMT_SWLIB_REVISION_PARAMETERS"(
REVISION_ID CONSTRAINT "MSRP_MSER_FK"
REFERENCES MGMT_SWLIB_ENTITY_REVISIONS("REVISION_ID")
ON DELETE CASCADE,
NAME NVARCHAR2(64),
VALUE NVARCHAR2(256)
)
MONITORING;
--This table holds the entity's supported platforms information.
--Deletion of the entity will delete the corresponding platforms assoc
--with it.
CREATE TABLE "MGMT_SWLIB_ENTITY_PLATFORMS"(
ENTITY_ID CONSTRAINT "MSEPL_MSE_FK"
REFERENCES MGMT_SWLIB_ENTITIES("ENTITY_ID")
ON DELETE CASCADE,
PLATFORM NVARCHAR2(64)
)
MONITORING;
--This table holds a list of filesystem directories to be used as
--mount points.
--It is not keyed to any other table.
CREATE TABLE "MGMT_SWLIB_DATA_DIRECTORIES"(
PATH_ID RAW(16) DEFAULT SYS_GUID()
CONSTRAINT "MSDD_PK" PRIMARY KEY,
FILEPATH VARCHAR2(255)
)
MONITORING;
-- upgrade indexes now
ALTER TABLE MGMT_SWLIB_ENTITY_PLATFORMS
ADD CONSTRAINT MGMT_SWLIB_PLAT_PK
PRIMARY KEY(ENTITY_ID, PLATFORM);
ALTER TABLE MGMT_SWLIB_REVISION_PARAMETERS
ADD CONSTRAINT MGMT_SWLIB_REV_PAR_PK
PRIMARY KEY(REVISION_ID, NAME);
ALTER TABLE MGMT_SWLIB_ENTITY_PARAMETERS
ADD CONSTRAINT MGMT_SWLIB_PAR_PK
PRIMARY KEY(ENTITY_ID, NAME);
ALTER TABLE MGMT_SWLIB_ENTITY_DATA
ADD CONSTRAINT MGMT_SWLIB_DAT_PK
PRIMARY KEY(REVISION_ID);
CREATE INDEX MGMT_SWLIB_DIR_IDX1 ON
MGMT_SWLIB_DIRECTORIES(PARENT_ID)
;
CREATE INDEX MGMT_SWLIB_ENT_IDX1 ON
MGMT_SWLIB_ENTITIES(DIRECTORY_ID, TYPE, NAME)
;
CREATE INDEX MGMT_SWLIB_REV_IDX1 ON
MGMT_SWLIB_ENTITY_REVISIONS(ENTITY_ID, REVISION)
;
CREATE INDEX MGMT_SWLIB_REF_IDX1 ON
MGMT_SWLIB_ENTITY_REFERENCES(TARGET_ID)
;
CREATE INDEX MGMT_SWLIB_REF_IDX2 ON
MGMT_SWLIB_ENTITY_REFERENCES(TARGET_REVISION_ID)
;
CREATE INDEX MGMT_SWLIB_REF_IDX3 ON
MGMT_SWLIB_ENTITY_REFERENCES(SOURCE_ID, REFINDEX)
;
CREATE INDEX MGMT_SWLIB_DOC_IDX1 ON
MGMT_SWLIB_ENTITY_DOCUMENTS(REVISION_ID, REFERENCE_ID, NAME)
;
CREATE INDEX MGMT_SWLIB_PAR_IDX1 ON
MGMT_SWLIB_ENTITY_PARAMETERS(NAME, VALUE)
;
CREATE INDEX MGMT_SWLIB_REV_PAR_IDX1 ON
MGMT_SWLIB_REVISION_PARAMETERS(NAME, VALUE)
;
CREATE INDEX MGMT_SWLIB_PLAT_IDX1 ON
MGMT_SWLIB_ENTITY_PLATFORMS(PLATFORM)
;
-- upgrade types now
CREATE OR REPLACE TYPE MGMT_SWLIB_NVPAIR IS OBJECT
(
NAME VARCHAR2(64),
VALUE VARCHAR2(256)
);
/
CREATE OR REPLACE TYPE MGMT_SWLIB_PARAMS_LIST IS TABLE OF MGMT_SWLIB_NVPAIR;
/
CREATE OR REPLACE TYPE MGMT_SWLIB_PLATFORM_LIST IS TABLE OF VARCHAR2(64);
/
CREATE OR REPLACE TYPE MGMT_SWLIB_PATH_LIST IS TABLE OF VARCHAR2(255);
/
CREATE OR REPLACE TYPE MGMT_SWLIB_DOCUMENT_RECORD IS OBJECT
(
REVISION_ID VARCHAR2(32),
NAME VARCHAR2(64),
REFERENCE_ID VARCHAR2(32),
VALUE CLOB
);
/
CREATE OR REPLACE TYPE MGMT_SWLIB_DOCUMENT_LIST IS TABLE OF MGMT_SWLIB_DOCUMENT_RECORD;
/
CREATE OR REPLACE TYPE MGMT_SWLIB_REVISION_RECORD IS OBJECT
(
REVISION_ID VARCHAR2(32),
REVISION VARCHAR2(16),
REVISION_AUTHOR VARCHAR2(64),
MATURITY_STATUS VARCHAR2(16),
STATUS NUMBER(2),---enum?
PRODUCT VARCHAR2(64),
PRODUCT_VERSION VARCHAR2(16),
DATA_TYPE VARCHAR2(64),
CHECKSUM VARCHAR2(16),
REV_PARAMS_INFO MGMT_SWLIB_PARAMS_LIST,
DOCUMENTS MGMT_SWLIB_DOCUMENT_LIST
);
/
CREATE OR REPLACE TYPE MGMT_SWLIB_ENTITY_RECORD IS OBJECT
(
ENTITY_ID VARCHAR2(32),
NAME VARCHAR2(64),
OWNER VARCHAR2(64),
CREATION_DATE DATE,
DESCRIPTION VARCHAR2(256),
TYPE VARCHAR2(64),
DIRECTORY_ID VARCHAR2(32),
VENDOR VARCHAR2(64),
REVISION_INFO MGMT_SWLIB_REVISION_RECORD,
PLATFORM_INFO MGMT_SWLIB_PLATFORM_LIST,
PARAMS_INFO MGMT_SWLIB_PARAMS_LIST
);
/
CREATE OR REPLACE TYPE MGMT_SWLIB_REFERENCE_RECORD IS OBJECT
(
REFERENCE_ID VARCHAR2(32),
SOURCE_ID VARCHAR2(32),
NAME VARCHAR2(64),
TYPE VARCHAR2(64),
TARGET_ID VARCHAR2(32),
TARGET_REVISION VARCHAR2(16),
TARGET_PRODUCTION NUMBER(1),
DOCUMENTS MGMT_SWLIB_DOCUMENT_LIST
);
/
CREATE OR REPLACE TYPE MGMT_SWLIB_REFERENCE_LIST IS TABLE OF MGMT_SWLIB_REFERENCE_RECORD;
/
CREATE OR REPLACE TYPE MGMT_SWLIB_DIRECTORY_RECORD IS OBJECT
(
DIRECTORY_ID VARCHAR2(32),
NAME VARCHAR2(64),
PARENT_ID VARCHAR2(32),
DESCRIPTION VARCHAR2(256),
OWNER VARCHAR2(64)
);
/
show errors;
/