diff --git a/epsdk-app-onap/pom.xml b/epsdk-app-onap/pom.xml
index f052b85..da49416 100755
--- a/epsdk-app-onap/pom.xml
+++ b/epsdk-app-onap/pom.xml
@@ -394,6 +394,11 @@
             <version>20160212</version>
         </dependency>
         <dependency>
+            <groupId>org.liquibase</groupId>
+            <artifactId>liquibase-core</artifactId>
+            <version>3.5.5</version>
+        </dependency>
+        <dependency>
             <groupId>org.quartz-scheduler</groupId>
             <artifactId>quartz</artifactId>
             <version>2.2.1</version>
diff --git a/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java b/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
index 2950c7f..b4dcd34 100644
--- a/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
+++ b/epsdk-app-onap/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
@@ -40,6 +40,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import javax.sql.DataSource;
+import liquibase.integration.spring.SpringLiquibase;
 import org.onap.portalapp.login.LoginStrategyImpl;
 import org.onap.portalsdk.core.auth.LoginStrategy;
 import org.onap.portalsdk.core.conf.AppConfig;
@@ -49,7 +50,6 @@
 import org.onap.portalsdk.core.service.DataAccessService;
 import org.onap.portalsdk.core.util.CacheManager;
 import org.onap.portalsdk.core.util.SystemProperties;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -58,10 +58,7 @@
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.Profile;
 import org.springframework.context.annotation.PropertySource;
-import org.springframework.core.io.Resource;
-import org.springframework.jdbc.datasource.init.DataSourceInitializer;
-import org.springframework.jdbc.datasource.init.DatabasePopulator;
-import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
+import org.springframework.core.annotation.Order;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.quartz.SchedulerFactoryBean;
@@ -87,14 +84,6 @@
 	/** The Constant LOG. */
     private static final EELFLoggerDelegate LOG = EELFLoggerDelegate.getLogger(ExternalAppConfig.class);
 
-    /** The vid schema script. */
-    @Value("classpath:vid-schema.sql")
-    private Resource vidSchemaScript;
-
-    /** The vid data script. */
-    @Value("classpath:vid-data.sql")
-    private Resource vidDataScript;
-
     /**
      * The Class InnerConfiguration.
      */
@@ -107,6 +96,7 @@
 	 * @see org.onap.portalsdk.core.conf.AppConfig#dataAccessService()
 	 */
 	@Override
+	@DependsOn("liquibaseBean")
 	public DataAccessService dataAccessService() {
 		// Echo the JDBC URL to assist developers when starting the app.
 		LOG.info("ExternalAppConfig: " + SystemProperties.DB_CONNECTIONURL + " is "
@@ -156,7 +146,7 @@
 	 * @return New instance of {@link SchedulerFactoryBean}
 	 */
 	@Bean
-	@DependsOn("dataSourceInitializer")
+	@DependsOn("liquibaseBean")
 	public SchedulerFactoryBean schedulerFactoryBean() {
 		SchedulerFactoryBean schedulerFactory = new SchedulerFactoryBean();
 		schedulerFactory.setJobFactory(new SpringBeanJobFactory());
@@ -164,36 +154,14 @@
 	}
 
 
-	/**
-     * Data source initializer.
-     *
-     * @param dataSource the data source
-     * @return the data source initializer
-     */
-    @Bean
-    public DataSourceInitializer dataSourceInitializer(DataSource dataSource) {
-
-        LOG.info("Initializing VID data source");
-
-        final DataSourceInitializer initializer = new DataSourceInitializer();
-        initializer.setDataSource(dataSource);
-        initializer.setDatabasePopulator(databasePopulator());
-        return initializer;
-    }
-
-    /**
-     * Database populator.
-     *
-     * @return the database populator
-     */
-    public DatabasePopulator databasePopulator() {
-        LOG.info("Populating VID data source");
-
-        final ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
-        populator.addScript(vidSchemaScript);
-        populator.addScript(vidDataScript);
-        return populator;
-    }
+	@Bean
+	@Order(1)
+	public SpringLiquibase liquibaseBean(DataSource dataSource) {
+		SpringLiquibase springLiquibase = new SpringLiquibase();
+		springLiquibase.setDataSource(dataSource);
+		springLiquibase.setChangeLog("classpath:db-master-changelog.xml");
+		return springLiquibase;
+	}
 
 	@Bean
 	public LoginStrategy loginStrategy() {
diff --git a/epsdk-app-onap/src/main/resources/db-master-changelog.xml b/epsdk-app-onap/src/main/resources/db-master-changelog.xml
new file mode 100644
index 0000000..89b248d
--- /dev/null
+++ b/epsdk-app-onap/src/main/resources/db-master-changelog.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog logicalFilePath="db.changelog-master.xml" xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
+                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
+
+    <changeSet author="em088y" id="vid-schema-old">
+        <validCheckSum>7:5dfe06641ec9741b03d03a9d18ab8d1f</validCheckSum>
+        <validCheckSum>7:4d5f58859c45a470469614655e0c7b98</validCheckSum>
+        <validCheckSum>7:2ae05ea080ee858458be06fd0b5d726b</validCheckSum>
+        <validCheckSum>7:a2ef9dd09f0c7587bfd8845ef928a801</validCheckSum>
+        <sqlFile encoding="utf8" path="vid-schema-deprecated.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true"/>
+    </changeSet>
+
+    <changeSet author="em088y" id="vid-data-old">
+        <validCheckSum>7:ad0ceb32f9ae0bbd02082d187b42216c</validCheckSum>
+        <validCheckSum>7:a0b9655a83dbaace18a2dc935a66e6f7</validCheckSum>
+        <validCheckSum>7:f1ce75e094def24fe1e9222386478023</validCheckSum>
+        <sqlFile encoding="utf8" path="vid-data-deprecated.sql" relativeToChangelogFile="true" splitStatements="true" stripComments="true"/>
+    </changeSet>
+
+    <include file="db.changelog-01.sql" relativeToChangelogFile="true"/>
+
+
+
+</databaseChangeLog>
\ No newline at end of file
diff --git a/epsdk-app-onap/src/main/resources/db.changelog-01.sql b/epsdk-app-onap/src/main/resources/db.changelog-01.sql
new file mode 100644
index 0000000..acc0617
--- /dev/null
+++ b/epsdk-app-onap/src/main/resources/db.changelog-01.sql
@@ -0,0 +1,320 @@
+--liquibase formatted sql
+
+--changeset da797d:1
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`vid_service_info` (
+  `ID` INT(11) NOT NULL AUTO_INCREMENT,
+   `JOB_ID` BINARY(16) NOT NULL,
+  `USER_ID` INT(11),
+  `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `JOB_STATUS` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `PAUSE` TINYINT(1) NULL,
+  `OWNING_ENTITY_ID` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `OWNING_ENTITY_NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `PROJECT` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `AIC_ZONE_ID` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `AIC_ZONE_NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `TENANT_ID` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `TENANT_NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `REGION_ID` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `REGION_NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `SERVICE_TYPE` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `SUBSCRIBER_NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `SERVICE_INSTANCE_ID` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `SERVICE_INSTANCE_NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `SERVICE_MODEL_ID` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `SERVICE_MODEL_NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `SERVICE_MODEL_VERSION` VARCHAR(20) NULL COLLATE 'utf8_bin',
+  PRIMARY KEY (`ID`),
+  CONSTRAINT `vid_service_info_vid_job_JOB_ID_fk` FOREIGN KEY (`JOB_ID`) REFERENCES `vid_openecomp_epsdk`.`vid_job` (`JOB_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+--rollback drop table `vid_openecomp_epsdk`.`vid_service_info`;
+
+--changeset em088y:2
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+ADD COLUMN CREATED_BULK_DATE TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ADD COLUMN IS_HIDDEN BIT,
+ADD COLUMN IS_PAUSE BIT,
+ADD COLUMN STATUS_MODIFIED_DATE TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+DROP COLUMN PAUSE;
+--rollback alter `vid_openecomp_epsdk`.`vid_service_info` drop CREATED_BULK_DATE, drop IS_HIDDEN, drop IS_PAUSE, drop STATUS_MODIFIED_DATE;
+
+--changeset em088y:3
+delete from `vid_openecomp_epsdk`.`vid_service_info`;
+delete from `vid_openecomp_epsdk`.`vid_job`;
+
+alter table `vid_openecomp_epsdk`.`vid_service_info` drop foreign key vid_service_info_vid_job_JOB_ID_fk;
+
+alter table `vid_openecomp_epsdk`.`vid_job`
+drop index `FK_OWNING_VID_JOB_PARENT`,
+drop FOREIGN KEY `FK_OWNING_VID_JOB_PARENT`,
+drop primary key,
+modify JOB_ID CHAR(36),
+modify PARENT_JOB_ID CHAR(36),
+add PRIMARY KEY (`JOB_ID`);
+
+alter table `vid_openecomp_epsdk`.`vid_job`
+add CONSTRAINT `FK_OWNING_VID_JOB_PARENT` FOREIGN KEY (`PARENT_JOB_ID`) REFERENCES `vid_job` (`JOB_ID`);
+
+alter table `vid_openecomp_epsdk`.`vid_service_info`
+modify JOB_ID CHAR(36),
+add FOREIGN KEY `FK_SERVICE_INFO_VID_JOB_ID`(`JOB_ID`) REFERENCES `vid_job` (`JOB_ID`);
+
+--changeset rr155p:4
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job`
+DROP FOREIGN KEY  `FK_OWNING_VID_JOB_PARENT`;
+
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job`
+ CHANGE COLUMN `PARENT_JOB_ID` `TEMPLATE_ID` CHAR(36) NULL DEFAULT NULL COLLATE 'utf8_bin' AFTER `JOB_DATA`;
+
+--changeset is9613:5
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+ADD COLUMN `TEMPLATE_ID` CHAR(36) NULL DEFAULT NULL;
+
+--changeset rr155p:6
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job`
+ADD COLUMN `USER_ID` VARCHAR(50) NULL COLLATE 'utf8_bin';
+
+--changeset is9613:7
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job`
+  ADD COLUMN `AGE` INT NOT NULL default '0';
+
+--changeset rr155p:8
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+ CHANGE COLUMN `USER_ID` `USER_ID` VARCHAR(50) NULL COLLATE 'utf8_bin';
+
+--changeset cl0627:9
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job`
+  ADD COLUMN DELETED_AT TIMESTAMP NULL DEFAULT NULL;
+
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+  ADD COLUMN DELETED_AT TIMESTAMP NULL DEFAULT NULL;
+
+--changeset em088y:10
+UPDATE `vid_openecomp_epsdk`.`fn_menu` SET `SORT_ORDER` = 13 where MENU_ID=110;
+UPDATE `vid_openecomp_epsdk`.`fn_menu` SET `SORT_ORDER` = 12 where MENU_ID=109;
+INSERT INTO `vid_openecomp_epsdk`.`fn_menu` (`MENU_ID`, `LABEL`, `PARENT_ID`, `SORT_ORDER`, `ACTION`, `FUNCTION_CD`, `ACTIVE_YN`, `SERVLET`, `QUERY_STRING`, `EXTERNAL_URL`, `TARGET`, `MENU_SET_CD`, `SEPARATOR_YN`, `IMAGE_SRC`) VALUES
+(111, 'Macro Instantiation Status', 1, 11, 'serviceModels.htm#/instantiationStatus', 'menu_searchexisting', 'Y', NULL, NULL, NULL, NULL, 'APP', 'N', 'icon-location-pin');
+
+--changeset is9613:job_index_in_bulk
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job`
+  ADD COLUMN `INDEX_IN_BULK` INT NOT NULL default '0';
+
+
+--changeset rr155:vid_job_audit_status
+CREATE TABLE `vid_openecomp_epsdk`.`vid_job_audit_status` (
+  `ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `JOB_ID` CHAR(36) NOT NULL,
+  `JOB_STATUS` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `SOURCE` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `REQUEST_ID` CHAR(36) NULL,
+  `ADDITIONAL_INFO` VARCHAR (255) NULL,
+  `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+   PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+
+--changeset em088y:name_counter
+CREATE TABLE `vid_openecomp_epsdk`.`vid_name_counter` (
+  `NAME` VARCHAR(100) NOT NULL COLLATE 'utf8_bin',
+  `COUNTER` INT NOT NULL,
+  PRIMARY KEY (`NAME`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+
+--changeset em088y:increase_names_maxsize_500
+alter table `vid_openecomp_epsdk`.`vid_service_info`
+modify `OWNING_ENTITY_NAME` VARCHAR(500) NULL COLLATE 'utf8_bin',
+modify `AIC_ZONE_NAME` VARCHAR(500) NULL COLLATE 'utf8_bin',
+modify `TENANT_NAME` VARCHAR(500) NULL COLLATE 'utf8_bin',
+modify `REGION_NAME` VARCHAR(500) NULL COLLATE 'utf8_bin',
+modify `SUBSCRIBER_NAME` VARCHAR(500) NULL COLLATE 'utf8_bin',
+modify `SERVICE_INSTANCE_NAME` VARCHAR(500) NULL COLLATE 'utf8_bin',
+modify `SERVICE_MODEL_NAME` VARCHAR(500) NULL COLLATE 'utf8_bin';
+
+alter table `vid_openecomp_epsdk`.`vid_name_counter`
+modify `NAME` VARCHAR(255) NOT NULL COLLATE 'utf8_bin';
+
+--changeset is9613:add_SUBSCRIBER_ID_to_vid_service_info
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+  ADD COLUMN `SUBSCRIBER_ID` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_bin' AFTER `SUBSCRIBER_NAME`;
+
+--changeset em088y:additional_info_maxsize_2000
+alter table `vid_openecomp_epsdk`.`vid_job_audit_status`
+modify `ADDITIONAL_INFO` VARCHAR(2000) NULL COLLATE 'utf8_bin';
+
+--changeset er767y:change_'Macro Instantiation Status'_menu_item
+UPDATE `vid_openecomp_epsdk`.`fn_menu` SET `LABEL` = 'Instantiation Status' WHERE `MENU_ID`=111;
+
+--changeset cl0627:add_MSO_REQUEST_ID_and_IS_A_LA_CARTE_to_vid_service_info
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+  ADD COLUMN `MSO_REQUEST_ID` CHAR(36) NULL AFTER `USER_ID`,
+  ADD COLUMN `IS_A_LA_CARTE` BIT NULL AFTER `MSO_REQUEST_ID`;
+
+--changeset cl0627:change_IS_A_LA_CARTE_to_not_null_and_default_false
+UPDATE `vid_openecomp_epsdk`.`vid_service_info` SET `IS_A_LA_CARTE` = 0 WHERE ISNULL(`IS_A_LA_CARTE`);
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+  MODIFY `IS_A_LA_CARTE` bit(1) NOT NULL DEFAULT 0;
+
+
+--changeset vid:add_Action_and_Type_to_fn_function
+ALTER TABLE `vid_openecomp_epsdk`.`fn_function`
+  ADD COLUMN IF NOT EXISTS `type` VARCHAR(50) NULL AFTER `function_name`,
+  ADD COLUMN IF NOT EXISTS `action` VARCHAR(100) NULL AFTER `type`;
+
+--changeset em088y:increase_ids_maxsize_500
+alter table `vid_openecomp_epsdk`.`vid_service_info`
+modify `USER_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `MSO_REQUEST_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `OWNING_ENTITY_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `PROJECT` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `AIC_ZONE_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `TENANT_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `REGION_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `SERVICE_TYPE` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `SUBSCRIBER_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `SERVICE_INSTANCE_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `SERVICE_MODEL_ID` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin',
+modify `SERVICE_MODEL_VERSION` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_bin';
+
+--changeset ah0398:restrict_url_for_role_management
+INSERT IGNORE INTO fn_restricted_url (restricted_url, function_cd) VALUES ('get_user_roles','menu_admin');
+INSERT IGNORE INTO fn_restricted_url (restricted_url, function_cd) VALUES ('addRoleFunction','menu_admin');
+
+--changeset rs282j:add_ACTION_to_vid_service_info
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+  ADD COLUMN `ACTION` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_bin';
+
+UPDATE `vid_openecomp_epsdk`.`vid_service_info` SET `ACTION` = 'INSTANTIATE' where ISNULL(ACTION);
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+  MODIFY `ACTION` VARCHAR(50) NOT NULL;
+
+--changeset ag137v:welcome_page_used_by_epsdk_2_5_0
+INSERT IGNORE INTO fn_restricted_url (restricted_url, function_cd) VALUES ('welcome','menu_home');
+
+--changeset ag137v:welcome_page_used_by_epsdk_2_5_0_fn_menu
+UPDATE `vid_openecomp_epsdk`.`fn_menu` SET `ACTION` = 'welcome' WHERE `ACTION` = 'welcome.htm';
+
+--changeset em088y:remove_all_foreign_keys_from_fn_user
+alter table `vid_openecomp_epsdk`.`fn_user`
+drop foreign key FK_FN_USER_REF_110_FN_ORG,
+drop foreign key FK_FN_USER_REF_123_FN_LU_AL,
+drop foreign key FK_FN_USER_REF_197_FN_USER,
+drop foreign key FK_FN_USER_REF_198_FN_USER,
+drop foreign key FK_FN_USER_REF_199_FN_USER,
+drop foreign key FK_TIMEZONE;
+
+--changeset em088y:add_IS_RETRY_ENABLED_to_vid_service_info
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+  ADD COLUMN `IS_RETRY_ENABLED` bit(1) NOT NULL DEFAULT 0 AFTER `IS_PAUSE`;
+
+--changeset em088y:create_table_vid_job_request
+CREATE TABLE `vid_openecomp_epsdk`.`vid_job_request` (
+  `JOB_ID` CHAR(36) NOT NULL COLLATE 'utf8_bin',
+  `REQUEST` MEDIUMTEXT NOT NULL COLLATE 'utf8_bin',
+  `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`JOB_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+
+--changeset cp2122:vid_resource_info
+CREATE TABLE `vid_openecomp_epsdk`.`vid_resource_info` (
+  `ROOT_JOB_ID` CHAR(36) NOT NULL COLLATE 'utf8_bin',
+  `TRACK_BY_ID` CHAR(36) NOT NULL COLLATE 'utf8_bin',
+  `JOB_STATUS` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `INSTANCE_ID` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`TRACK_BY_ID`),
+  INDEX `ROOT_JOB_ID_IND` (`ROOT_JOB_ID` )
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+
+--changeset ag137v:welcome_page_used_by_epsdk_2_5_0
+INSERT IGNORE INTO fn_restricted_url (restricted_url, function_cd) VALUES ('welcome','menu_home');
+
+--changeset er767y:add_error_message_to_vid_resource_info
+ALTER TABLE `vid_openecomp_epsdk`.`vid_resource_info`
+  ADD COLUMN `ERROR_MESSAGE` TEXT NULL DEFAULT NULL COLLATE 'utf8_bin' AFTER `INSTANCE_ID`;
+
+--changeset em088y:drop_foreign_key_from_service_info_to_jobs
+ALTER TABLE `vid_openecomp_epsdk`.`vid_service_info`
+  DROP FOREIGN KEY `FK_SERVICE_INFO_VID_JOB_ID`;
+
+--changeset em088y:add_BUILD_to_vid_job
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job`
+  ADD COLUMN `BUILD` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_bin';
+
+--changeset eb7504:add_category_parameter_release
+INSERT IGNORE INTO vid_category_parameter (CATEGORY_ID, NAME, ID_SUPPORTED,FAMILY) VALUES (7,'release', 0, 'TENANT_ISOLATION');
+
+--changeset ah0398:restrict_url_for_role_functions
+INSERT IGNORE INTO fn_restricted_url (restricted_url, function_cd) VALUES('get_role_functions','menu_admin');
+
+--changeset ah0398:restrict_all_required_urls_according_to_sdk_2_5_0
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('admin','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('addRole','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('get_role','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('profile/*','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('post_search/process','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('post_search/search','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('post_search/search','menu_profile');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('role/saveRole.htm','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('role_list/*','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('role_function_list/*','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('removeRole','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('removeRoleFunction','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('samplePage','menu_sample');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('workflows','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('workflows/list','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('workflows/addWorkflow','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('workflows/saveCronJob','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('workflows/editWorkflow','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('workflows/removeWorkflow','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('workflows/removeAllWorkflows','menu_admin');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('report/wizard/retrieve_def_tab_wise_data/*','menu_reports');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('report/wizard/retrieve_form_tab_wise_data/*','menu_reports');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('report/wizard/retrieve_sql_tab_wise_data/*','menu_reports');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('report/wizard/security/*','menu_reports');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('report/wizard/copy_report/*','menu_reports');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('report/wizard/save_def_tab_data/*','menu_reports');
+INSERT IGNORE INTO fn_restricted_url  (restricted_url, function_cd) VALUES('report/wizard/retrieve_data/true','menu_reports');
+
+--changeset is9613:add_ordinal_to_vid_job_audit_status
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job_audit_status`
+  ADD COLUMN `ORDINAL` INT DEFAULT 0;
+
+--changeset vid:align_changes_from_ecomp
+INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (6, 'VNF Scale Out') ON DUPLICATE KEY UPDATE WORKFLOW_DB_ID=6, WORKFLOW_APP_NAME='VNF Scale Out';
+INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (4, 'VNF Config Update') ON DUPLICATE KEY UPDATE WORKFLOW_DB_ID=4, WORKFLOW_APP_NAME='VNF Config Update';
+
+UPDATE `vid_openecomp_epsdk`.`fn_function` SET `type` = 'menu', `action` = '*';
+UPDATE `vid_openecomp_epsdk`.`fn_function` SET `type` = 'url' WHERE `FUNCTION_NAME`='Login';
+
+UPDATE `vid_openecomp_epsdk`.`fn_menu` SET `LABEL`='Browse SDC Service Models' WHERE `LABEL`='Browse ASDC Service Models';
+
+INSERT INTO `fn_role` VALUES (1,'System Administrator','Y',1) ON DUPLICATE KEY UPDATE ROLE_NAME='System Administrator', ACTIVE_YN='Y', PRIORITY=1;
+INSERT INTO `fn_role` VALUES (16,'Standard User','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Standard User', ACTIVE_YN='Y', PRIORITY=5;
+INSERT INTO `fn_role` VALUES (17,'Demonstration___vFWCL','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vFWCL', ACTIVE_YN='Y', PRIORITY=5;
+INSERT INTO `fn_role` VALUES (18,'Demonstration___vFW','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vFW', ACTIVE_YN='Y', PRIORITY=5;
+INSERT INTO `fn_role` VALUES (19,'Demonstration___vCPE','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vCPE', ACTIVE_YN='Y', PRIORITY=5;
+INSERT INTO `fn_role` VALUES (20,'Demonstration___vIMS','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vIMS', ACTIVE_YN='Y', PRIORITY=5;
+INSERT INTO `fn_role` VALUES (21,'Demonstration___vLB','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vLB', ACTIVE_YN='Y', PRIORITY=5;
+INSERT INTO `fn_role` VALUES (22,'Demonstration___gNB','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___gNB', ACTIVE_YN='Y', PRIORITY=5;
+
+INSERT IGNORE `fn_user` VALUES (1,null,null,'Demo',null,'User',null,null,null,null,null,null,null,'demo',null,'demo','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+INSERT IGNORE `fn_user` VALUES (2,null,null,'vid1',null,'User',null,null,null,null,null,null,null,'vid1',null,'vid1','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+INSERT IGNORE `fn_user` VALUES (3,null,null,'vid2',null,'User',null,null,null,null,null,null,null,'vid2',null,'vid2','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+INSERT IGNORE `fn_user` VALUES (4,null,null,'vid3',null,'User',null,null,null,null,null,null,null,'vid3',null,'vid3','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+INSERT IGNORE `fn_user` VALUES (5,null,null,'vid4',null,'User',null,null,null,null,null,null,null,'vid4',null,'vid4','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
+
+INSERT IGNORE `fn_user_role` VALUES (1,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (2,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (3,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (4,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (5,1,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (1,17,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (1,18,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (1,19,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (1,20,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (1,21,NULL,1);
+INSERT IGNORE `fn_user_role` VALUES (1,22,NULL,1);
+UPDATE `fn_app` SET `APP_IMAGE_URL`=null,`APP_URL`=null,`APP_ALTERNATE_URL`=null WHERE `APP_ID`=1;
diff --git a/epsdk-app-onap/src/main/resources/vid-data.sql b/epsdk-app-onap/src/main/resources/vid-data-deprecated.sql
old mode 100755
new mode 100644
similarity index 79%
rename from epsdk-app-onap/src/main/resources/vid-data.sql
rename to epsdk-app-onap/src/main/resources/vid-data-deprecated.sql
index 3d1d8fe..924d444
--- a/epsdk-app-onap/src/main/resources/vid-data.sql
+++ b/epsdk-app-onap/src/main/resources/vid-data-deprecated.sql
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -35,6 +35,10 @@
 DELETE FROM `fn_lu_state`;
 DELETE FROM `fn_lu_tab_set`;
 
+INSERT IGNORE INTO `fn_role` (`ROLE_ID`, `ROLE_NAME`, `ACTIVE_YN`, `PRIORITY`) VALUES
+	(1, 'System Administrator', 'Y', 1),
+	(16, 'Standard User', 'Y', 5);
+
 --
 -- Dumping data for table `cr_raptor_action_img`
 --
@@ -46,16 +50,14 @@
 --
 INSERT IGNORE INTO `fn_app` VALUES (1,'Default',null,'Some Default Description','Some Default Note',null,null,null,'ECPP','?',1,'okYTaDrhzibcbGVq5mjkVQ==','N','N',null,'Default',null,null,'ECOMP-PORTAL-INBOX');
 
-
 --
 -- Dumping data for table `vid_workflow`
 --
---update & replace workflows are disabled in ONAP
---INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (1, 'Update') ON DUPLICATE KEY UPDATE WORKFLOW_APP_NAME='Update';
---INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (2, 'Replace') ON DUPLICATE KEY UPDATE WORKFLOW_APP_NAME='Replace';
+INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (1, 'Update') ON DUPLICATE KEY UPDATE WORKFLOW_APP_NAME='Update';
+INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (2, 'Replace') ON DUPLICATE KEY UPDATE WORKFLOW_APP_NAME='Replace';
 INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (3, 'VNF In Place Software Update') ON DUPLICATE KEY UPDATE WORKFLOW_APP_NAME='VNF In Place Software Update';
-INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (4, 'VNF Scale Out') ON DUPLICATE KEY UPDATE WORKFLOW_APP_NAME='VNF Scale Out';
-INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (5, 'VNF Config Update') ON DUPLICATE KEY UPDATE WORKFLOW_APP_NAME='VNF Config Update';
+INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (6, 'VNF Scale Out') ON DUPLICATE KEY UPDATE WORKFLOW_DB_ID=6, WORKFLOW_APP_NAME='VNF Scale Out';
+INSERT INTO `vid_workflow` (`WORKFLOW_DB_ID`, `WORKFLOW_APP_NAME`) VALUES (4, 'VNF Config Update') ON DUPLICATE KEY UPDATE WORKFLOW_DB_ID=4, WORKFLOW_APP_NAME='VNF Config Update';
 
 
 --
@@ -79,44 +81,51 @@
 --
 -- Dumping data for table `fn_function`
 --
-INSERT INTO `fn_function` VALUES ('1','test role function','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='test role function';
-INSERT INTO `fn_function` VALUES ('doclib','Document Library','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Document Library';
-INSERT INTO `fn_function` VALUES ('doclib_admin','Document Library Admin','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Document Library Admin';
-INSERT INTO `fn_function` VALUES ('login','Login','url','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Login';
-INSERT INTO `fn_function` VALUES ('menu_admin','Admin Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Admin Menu';
-INSERT INTO `fn_function` VALUES ('menu_ajax','Ajax Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Ajax Menu';
-INSERT INTO `fn_function` VALUES ('menu_servicemodels','Browse SDC Service Instances','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Browse SDC Service Instances';
-INSERT INTO `fn_function` VALUES ('menu_concept','CoNCEPT','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='CoNCEPT';
-INSERT INTO `fn_function` VALUES ('menu_customer','Customer Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Customer Menu';
-INSERT INTO `fn_function` VALUES ('menu_customer_create','Customer Create','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Customer Create';
-INSERT INTO `fn_function` VALUES ('menu_doclib','Document Library Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Document Library Menu';
-INSERT INTO `fn_function` VALUES ('menu_feedback','Feedback Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Feedback Menu';
-INSERT INTO `fn_function` VALUES ('menu_help','Help Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Help Menu';
-INSERT INTO `fn_function` VALUES ('menu_home','Home Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Home Menu';
-INSERT INTO `fn_function` VALUES ('menu_itracker','iTracker Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='iTracker Menu';
-INSERT INTO `fn_function` VALUES ('menu_itracker_admin','Itracker Admin/Support menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Itracker Admin/Support menu';
-INSERT INTO `fn_function` VALUES ('menu_job','Job Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Job Menu';
-INSERT INTO `fn_function` VALUES ('menu_job_create','Job Create','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Job Create';
-INSERT INTO `fn_function` VALUES ('menu_job_designer','Process in Designer view','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Process in Designer view';
-INSERT INTO `fn_function` VALUES ('menu_logout','Logout Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Logout Menu';
-INSERT INTO `fn_function` VALUES ('menu_map','Map Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Map Menu';
-INSERT INTO `fn_function` VALUES ('menu_newserinstance','Create New Service Instance','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Create New Service Instance';
-INSERT INTO `fn_function` VALUES ('menu_notes','Notes Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Notes Menu';
-INSERT INTO `fn_function` VALUES ('menu_process','Process List','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Process List';
-INSERT INTO `fn_function` VALUES ('menu_profile','Profile Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Profile Menu';
-INSERT INTO `fn_function` VALUES ('menu_profile_create','Profile Create','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Profile Create';
-INSERT INTO `fn_function` VALUES ('menu_profile_import','Profile Import','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Profile Import';
-INSERT INTO `fn_function` VALUES ('menu_reports','Reports Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Reports Menu';
-INSERT INTO `fn_function` VALUES ('menu_sample','Sample Pages Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Sample Pages Menu';
-INSERT INTO `fn_function` VALUES ('menu_tab','Sample Tab Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Sample Tab Menu';
-INSERT INTO `fn_function` VALUES ('menu_task','Task Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Task Menu';
-INSERT INTO `fn_function` VALUES ('menu_task_search','Task Search','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Task Search';
-INSERT INTO `fn_function` VALUES ('menu_test','Test Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Test Menu';
-INSERT INTO `fn_function` VALUES ('menu_viewlog','Log Menu','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Log Menu';
-INSERT INTO `fn_function` VALUES ('view_reports','View Raptor reports','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='View Raptor reports';
-INSERT INTO `fn_function` VALUES ('menu_searchexisting', 'Search for Existing Service Instances','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Search for Existing Service Instances';
-INSERT INTO `fn_function` VALUES ('menu_changemanagement','VNF Changes','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='VNF Changes';
---INSERT INTO `fn_function` VALUES ('menu_testenvironment','Test Environments','menu','*') ON DUPLICATE KEY UPDATE FUNCTION_NAME='Test Environments';
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('1','test role function');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('doclib','Document Library');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('doclib_admin','Document Library Admin');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('login','Login');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_admin','Admin Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_ajax','Ajax Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_servicemodels','Browse ASDC Service Instances');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_concept','CoNCEPT');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_customer','Customer Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_customer_create','Customer Create');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_doclib','Document Library Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_feedback','Feedback Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_help','Help Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_hiveconfig','Hive Configuration');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_hiveconfig_create','Hive Configuration Create');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_hiveconfig_search','Hive Configuration Search');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_home','Home Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_itracker','iTracker Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_itracker_admin','Itracker Admin/Support menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_job','Job Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_job_create','Job Create');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_job_designer','Process in Designer view');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_logout','Logout Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_map','Map Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_mapreduce','Map Reduce Configuration');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_mapreduce_create','Map Reduce Configuration Create');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_mapreduce_search','Map Reduce Configuration Search');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_newserinstance','Create New Service Instance');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_notes','Notes Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_process','Process List');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_profile','Profile Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_profile_create','Profile Create');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_profile_import','Profile Import');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_reports','Reports Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_sample','Sample Pages Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_tab','Sample Tab Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_task','Task Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_task_search','Task Search');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_test','Test Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_viewlog','Log Menu');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('quantum_bd','Big Data Function');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('view_reports','View Raptor reports');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_searchexisting', 'Search for Existing Service Instances');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_changemanagement','VNF Changes');
+REPLACE INTO `fn_function` (`FUNCTION_CD`, `FUNCTION_NAME`) VALUES ('menu_testenvironment','Test Environments');
 
 --
 -- Dumping data for table `fn_lu_activity`
@@ -443,7 +452,7 @@
 --
 -- Dumping data for table `fn_lu_menu_set`
 --
-INSERT INTO `fn_lu_menu_set` VALUES ('APP','Application Menu') ON DUPLICATE KEY UPDATE MENU_SET_NAME='Application Menu';
+REPLACE INTO `fn_lu_menu_set` VALUES ('APP','Application Menu');
 
 --
 -- Dumping data for table `fn_lu_priority`
@@ -514,7 +523,7 @@
 --
 -- Dumping data for table `fn_lu_tab_set`
 --
-INSERT INTO `fn_lu_tab_set` VALUES ('APP','Application Tabs') ON DUPLICATE KEY UPDATE TAB_SET_NAME='Application Tabs';
+REPLACE INTO `fn_lu_tab_set` VALUES ('APP','Application Tabs');
 
 --
 -- Dumping data for table `fn_lu_timezone`
@@ -532,11 +541,10 @@
 --
 INSERT INTO `fn_menu` VALUES (1,'Root',NULL,10,NULL,'menu_home','N',NULL,NULL,NULL,NULL,'APP','N',NULL) ON DUPLICATE KEY UPDATE LABEL='Root', PARENT_ID=NULL, SORT_ORDER=10, ACTION=NULL, FUNCTION_CD='menu_home', ACTIVE_YN='N', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC=NULL;
 INSERT INTO `fn_menu` VALUES (2,'VID Home',1,10,'welcome.htm','menu_home','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='VID Home', PARENT_ID=1, SORT_ORDER=10, ACTION='welcome.htm', FUNCTION_CD='menu_home', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
-
 INSERT INTO `fn_menu` VALUES (3,'Search for Existing Service Instances',1,10,'serviceModels.htm#/instances/services','menu_searchexisting','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Search for Existing Service Instances', PARENT_ID=1, SORT_ORDER=10, ACTION='serviceModels.htm#/instances/services', FUNCTION_CD='menu_searchexisting', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
 INSERT INTO `fn_menu` VALUES (10,'Admin',1,110,'role_list.htm','menu_admin','Y',NULL,NULL,NULL,NULL,'APP','N','icon-settings') ON DUPLICATE KEY UPDATE LABEL='Admin', PARENT_ID=1, SORT_ORDER=110, ACTION='admin', FUNCTION_CD='menu_admin', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-settings';
 INSERT INTO `fn_menu` VALUES (13,'VID Logout',1,130,'app_logout.htm','menu_logout','N',NULL,NULL,NULL,NULL,'APP','N','icon-sign-out') ON DUPLICATE KEY UPDATE LABEL='VID Logout', PARENT_ID=1, SORT_ORDER=130, ACTION='app_logout.htm', FUNCTION_CD='menu_logout', ACTIVE_YN='N', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-sign-out';
-INSERT INTO `fn_menu` VALUES (42,'Browse SDC Service Models',1,10,'serviceModels.htm','menu_servicemodels','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Browse SDC Service Instances', PARENT_ID=1, SORT_ORDER=10, ACTION='serviceModels.htm', FUNCTION_CD='menu_servicemodels', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+INSERT INTO `fn_menu` VALUES (42,'Browse ASDC Service Models',1,10,'serviceModels.htm','menu_servicemodels','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Browse ASDC Service Instances', PARENT_ID=1, SORT_ORDER=10, ACTION='serviceModels.htm', FUNCTION_CD='menu_servicemodels', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
 INSERT INTO `fn_menu` VALUES (41,'Create New Service Instance',1,10,'serviceModels.htm#/instances/subscribers','menu_newserinstance','Y',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Create New Service Instance', PARENT_ID=1, SORT_ORDER=10, ACTION='serviceModels.htm#/instances/subscribers', FUNCTION_CD='menu_newserinstance', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
 INSERT INTO `fn_menu` VALUES (43,'View Log',1,10,'viewlog.htm','menu_viewlog','N',NULL,NULL,NULL,NULL,'APP','N','icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='View Log', PARENT_ID=1, SORT_ORDER=10, ACTION='viewlog.htm', FUNCTION_CD='menu_viewlog', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
 INSERT INTO `fn_menu` VALUES (101,'Roles',10,20,'admin','menu_admin','Y',NULL,NULL,NULL,NULL,'APP','N','/static/fusion/images/users.png') ON DUPLICATE KEY UPDATE LABEL='Roles', PARENT_ID=10, SORT_ORDER=20, ACTION='admin', FUNCTION_CD='menu_admin', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='/static/fusion/images/users.png';
@@ -546,7 +554,7 @@
 INSERT INTO `fn_menu` VALUES (106,'Lock/Unlock Application',10,60,'application_lockout.htm','menu_admin','N',NULL,NULL,NULL,NULL,'APP','N','/static/fusion/images/decrypted.png') ON DUPLICATE KEY UPDATE LABEL='Lock/Unlock Application', PARENT_ID=10, SORT_ORDER=60, ACTION='application_lockout.htm', FUNCTION_CD='menu_admin', ACTIVE_YN='N', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='/static/fusion/images/decrypted.png';
 INSERT INTO `fn_menu` VALUES (108,'Usage',10,80,'admin#/usage_list','menu_admin','N',NULL,NULL,NULL,NULL,'APP','N','/static/fusion/images/users.png') ON DUPLICATE KEY UPDATE LABEL='Usage', PARENT_ID=10, SORT_ORDER=80, ACTION='admin#/usage_list', FUNCTION_CD='menu_admin', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='/static/fusion/images/users.png';
 INSERT INTO `fn_menu` VALUES (109, 'VNF Changes', 1, 11, 'serviceModels.htm#/change-management', 'menu_changemanagement', 'Y', NULL, NULL, NULL, NULL, 'APP', 'N', 'icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='VNF Changes', PARENT_ID=1, SORT_ORDER=11, ACTION='serviceModels.htm#/change-management', FUNCTION_CD='menu_changemanagement', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
---INSERT INTO `fn_menu` VALUES (110, 'Test Environments', 1, 12, 'serviceModels.htm#/testEnvironments', 'menu_testenvironment', 'Y', NULL, NULL, NULL, NULL, 'APP', 'N', 'icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Test Environments', PARENT_ID=1, SORT_ORDER=12, ACTION='serviceModels.htm#/testEnvironments', FUNCTION_CD='menu_testenvironment', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
+INSERT INTO `fn_menu` VALUES (110, 'Test Environments', 1, 12, 'serviceModels.htm#/testEnvironments', 'menu_testenvironment', 'Y', NULL, NULL, NULL, NULL, 'APP', 'N', 'icon-location-pin') ON DUPLICATE KEY UPDATE LABEL='Test Environments', PARENT_ID=1, SORT_ORDER=12, ACTION='serviceModels.htm#/testEnvironments', FUNCTION_CD='menu_testenvironment', ACTIVE_YN='Y', SERVLET=NULL, QUERY_STRING=NULL, EXTERNAL_URL=NULL, TARGET=NULL, MENU_SET_CD='APP', SEPARATOR_YN='N', IMAGE_SRC='icon-location-pin';
 --
 -- Dumping data for table `fn_restricted_url`
 --
@@ -578,7 +586,7 @@
 REPLACE INTO `fn_restricted_url` VALUES ('jbpm_designer.htm','menu_job_create');
 REPLACE INTO `fn_restricted_url` VALUES ('jbpm_drools.htm','menu_job_create');
 REPLACE INTO `fn_restricted_url` VALUES ('process_job.htm','menu_job_create');
--- REPLACE INTO `fn_restricted_url` VALUES ('novamap_controller.htm','menu_map');
+REPLACE INTO `fn_restricted_url` VALUES ('novamap_controller.htm','menu_map');
 REPLACE INTO `fn_restricted_url` VALUES ('createnewserviceinstance.htm','menu_newserinstance');
 REPLACE INTO `fn_restricted_url` VALUES ('profile.htm','menu_profile_create');
 REPLACE INTO `fn_restricted_url` VALUES ('raptor.htm','menu_reports');
@@ -594,8 +602,8 @@
 REPLACE INTO `fn_restricted_url` VALUES ('map_download.htm','menu_tab');
 REPLACE INTO `fn_restricted_url` VALUES ('map_grid_search.htm','menu_tab');
 REPLACE INTO `fn_restricted_url` VALUES ('sample_animated_map.htm','menu_tab');
--- REPLACE INTO `fn_restricted_url` VALUES ('sample_heat_map.htm','menu_tab');
--- REPLACE INTO `fn_restricted_url` VALUES ('sample_heat_map_no_header.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('sample_heat_map.htm','menu_tab');
+REPLACE INTO `fn_restricted_url` VALUES ('sample_heat_map_no_header.htm','menu_tab');
 REPLACE INTO `fn_restricted_url` VALUES ('sample_map_2.htm','menu_tab');
 REPLACE INTO `fn_restricted_url` VALUES ('sample_map_3.htm','menu_tab');
 REPLACE INTO `fn_restricted_url` VALUES ('tab2_sub1.htm','menu_tab');
@@ -605,33 +613,23 @@
 REPLACE INTO `fn_restricted_url` VALUES ('tab3.htm','menu_tab');
 REPLACE INTO `fn_restricted_url` VALUES ('tab4.htm','menu_tab');
 REPLACE INTO `fn_restricted_url` VALUES ('viewlog.htm','menu_viewlog');
--- REPLACE INTO `fn_restricted_url` VALUES ('bd_optima.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('bd_optima_interactive.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('bd_p2t.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('grid_heatmap.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('hive.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('hiveconfig.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('hiveconfig_popup.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('hive_search.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('hive_search_popup.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('jbpmTestProcess.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('job_progress.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('mapreduce.htm','quantum_bd');
--- REPLACE INTO `fn_restricted_url` VALUES ('mapreduce_search.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('bd_optima.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('bd_optima_interactive.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('bd_p2t.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('grid_heatmap.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('hive.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('hiveconfig.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('hiveconfig_popup.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('hive_search.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('hive_search_popup.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('jbpmTestProcess.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('job_progress.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('mapreduce.htm','quantum_bd');
+REPLACE INTO `fn_restricted_url` VALUES ('mapreduce_search.htm','quantum_bd');
 REPLACE INTO `fn_restricted_url` VALUES ('raptor.htm','view_reports');
 REPLACE INTO `fn_restricted_url` VALUES ('raptor_blob_extract.htm','view_reports');
 REPLACE INTO `fn_restricted_url` VALUES ('serviceModels.htm','menu_servicemodels');
---
--- Dumping data for table `fn_role`
---
-INSERT INTO `fn_role` VALUES (1,'System Administrator','Y',1) ON DUPLICATE KEY UPDATE ROLE_NAME='System Administrator', ACTIVE_YN='Y', PRIORITY=1;
-INSERT INTO `fn_role` VALUES (16,'Standard User','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Standard User', ACTIVE_YN='Y', PRIORITY=5;
-INSERT INTO `fn_role` VALUES (17,'Demonstration___vFWCL','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vFWCL', ACTIVE_YN='Y', PRIORITY=5;
-INSERT INTO `fn_role` VALUES (18,'Demonstration___vFW','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vFW', ACTIVE_YN='Y', PRIORITY=5;
-INSERT INTO `fn_role` VALUES (19,'Demonstration___vCPE','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vCPE', ACTIVE_YN='Y', PRIORITY=5;
-INSERT INTO `fn_role` VALUES (20,'Demonstration___vIMS','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vIMS', ACTIVE_YN='Y', PRIORITY=5;
-INSERT INTO `fn_role` VALUES (21,'Demonstration___vLB','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___vLB', ACTIVE_YN='Y', PRIORITY=5;
-INSERT INTO `fn_role` VALUES (22,'Demonstration___gNB','Y',5) ON DUPLICATE KEY UPDATE ROLE_NAME='Demonstration___gNB', ACTIVE_YN='Y', PRIORITY=5;
+
 
 --
 -- Dumping data for table `fn_role_composite`
@@ -651,18 +649,18 @@
 REPLACE INTO `fn_role_function` VALUES (1,'menu_customer_create');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_feedback');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_help');
--- REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig');
--- REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig_create');
--- REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig_search');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig_create');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_hiveconfig_search');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_home');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_itracker');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_itracker_admin');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_job');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_job_create');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_logout');
--- REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce');
--- REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce_create');
--- REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce_search');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce_create');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_mapreduce_search');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_newserinstance');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_notes');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_process');
@@ -674,7 +672,7 @@
 REPLACE INTO `fn_role_function` VALUES (1,'menu_tab');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_test');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_viewlog');
--- REPLACE INTO `fn_role_function` VALUES (1,'quantum_bd');
+REPLACE INTO `fn_role_function` VALUES (1,'quantum_bd');
 REPLACE INTO `fn_role_function` VALUES (16,'login');
 REPLACE INTO `fn_role_function` VALUES (16,'menu_ajax');
 REPLACE INTO `fn_role_function` VALUES (16,'menu_servicemodels');
@@ -689,13 +687,13 @@
 REPLACE INTO `fn_role_function` VALUES (16,'menu_reports');
 REPLACE INTO `fn_role_function` VALUES (16,'menu_tab');
 REPLACE INTO `fn_role_function` VALUES (16,'menu_viewlog');
--- REPLACE INTO `fn_role_function` VALUES (16,'quantum_bd');
+REPLACE INTO `fn_role_function` VALUES (16,'quantum_bd');
 REPLACE INTO `fn_role_function` VALUES ('1', 'menu_searchexisting');
 REPLACE INTO `fn_role_function` VALUES ('16', 'menu_searchexisting');
 REPLACE INTO `fn_role_function` VALUES (1,'menu_changemanagement');
 REPLACE INTO `fn_role_function` VALUES (16,'menu_changemanagement');
---REPLACE INTO `fn_role_function` VALUES (1,'menu_testenvironment');
---REPLACE INTO `fn_role_function` VALUES (16,'menu_testenvironment');
+REPLACE INTO `fn_role_function` VALUES (1,'menu_testenvironment');
+REPLACE INTO `fn_role_function` VALUES (16,'menu_testenvironment');
 
 update fn_menu set active_yn = 'Y' where label = 'Admin';
 update fn_menu set active_yn = 'Y' where label = 'Root';
@@ -726,26 +724,3 @@
 REPLACE INTO `fn_tab_selected` VALUES ('TAB2_SUB3','tab2_sub3');
 REPLACE INTO `fn_tab_selected` VALUES ('TAB3','tab3');
 REPLACE INTO `fn_tab_selected` VALUES ('TAB4','tab4');
-
-
---
--- Dumping data for table `fn_user`
---
-INSERT IGNORE `fn_user` VALUES (1,null,null,'Demo',null,'User',null,null,null,null,null,null,null,'demo',null,'demo','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
-INSERT IGNORE `fn_user` VALUES (2,null,null,'vid1',null,'User',null,null,null,null,null,null,null,'vid1',null,'vid1','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
-INSERT IGNORE `fn_user` VALUES (3,null,null,'vid2',null,'User',null,null,null,null,null,null,null,'vid2',null,'vid2','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
-INSERT IGNORE `fn_user` VALUES (4,null,null,'vid3',null,'User',null,null,null,null,null,null,null,'vid3',null,'vid3','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
-INSERT IGNORE `fn_user` VALUES (5,null,null,'vid4',null,'User',null,null,null,null,null,null,null,'vid4',null,'vid4','Kp8bJ4SXszM0WX','2016-11-14 13:24:07','Y',null,'2016-10-17 00:00:00',1,'2016-11-14 13:24:07','N',null,null,null,'NJ',null,'US',null,null,null,null,null,10,null,null,null,null,null,null);
-
-INSERT IGNORE `fn_user_role` VALUES (1,1,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (2,1,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (3,1,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (4,1,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (5,1,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (1,17,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (1,18,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (1,19,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (1,20,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (1,21,NULL,1);
-INSERT IGNORE `fn_user_role` VALUES (1,22,NULL,1);
-
diff --git a/epsdk-app-onap/src/main/resources/vid-schema.sql b/epsdk-app-onap/src/main/resources/vid-schema-deprecated.sql
old mode 100755
new mode 100644
similarity index 98%
rename from epsdk-app-onap/src/main/resources/vid-schema.sql
rename to epsdk-app-onap/src/main/resources/vid-schema-deprecated.sql
index 2833cbd..e1a4ab7
--- a/epsdk-app-onap/src/main/resources/vid-schema.sql
+++ b/epsdk-app-onap/src/main/resources/vid-schema-deprecated.sql
@@ -1,1415 +1,1406 @@
-/*-
- * ============LICENSE_START=======================================================
- * VID
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
--- ----------------------------------------------------------------------------
--- MySQL Workbench Migration
--- Migrated Schemata: vid_openecomp_epsdk
--- Source Schemata: ecomp_sd
--- Created: Sun Nov 13 08:58:53 2016
--- Workbench Version: 6.3.6
--- ----------------------------------------------------------------------------
-
-SET FOREIGN_KEY_CHECKS = 0;
-
--- ----------------------------------------------------------------------------
--- Schema vid_openecomp_epsdk
--- ----------------------------------------------------------------------------
-CREATE SCHEMA IF NOT EXISTS `vid_openecomp_epsdk` ;
-
-USE vid_openecomp_epsdk;
-
-
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`schema_info` (
-  `SCHEMA_ID` VARCHAR(25) NOT NULL,
-  `SCHEMA_DESC` VARCHAR(75) NOT NULL,
-  `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL,
-  `CONNECTION_URL` VARCHAR(200) NOT NULL,
-  `USER_NAME` VARCHAR(45) NOT NULL,
-  `PASSWORD` VARCHAR(45) NULL DEFAULT NULL,
-  `DRIVER_CLASS` VARCHAR(100) NOT NULL,
-  `MIN_POOL_SIZE` INT(11) NOT NULL,
-  `MAX_POOL_SIZE` INT(11) NOT NULL,
-  `IDLE_CONNECTION_TEST_PERIOD` INT(11) NOT NULL)
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_favorite_reports
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_favorite_reports` (
-  `USER_ID` INT(11) NOT NULL,
-  `REP_ID` INT(11) NOT NULL,
-  PRIMARY KEY (`USER_ID`, `REP_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_filehist_log
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_filehist_log` (
-  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
-  `URL` VARCHAR(4000) NULL DEFAULT NULL,
-  `NOTES` VARCHAR(3500) NULL DEFAULT NULL,
-  `RUN_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_folder
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_folder` (
-  `FOLDER_ID` INT(11) NOT NULL,
-  `FOLDER_NAME` VARCHAR(50) NOT NULL,
-  `DESCR` VARCHAR(500) NULL DEFAULT NULL,
-  `CREATE_ID` INT(11) NOT NULL,
-  `CREATE_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `PARENT_FOLDER_ID` INT(11) NULL DEFAULT NULL,
-  `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
-  PRIMARY KEY (`FOLDER_ID`),
-  INDEX `FK_PARENT_KEY_CR_FOLDER` (`PARENT_FOLDER_ID` ASC),
-  CONSTRAINT `FK_PARENT_KEY_CR_FOLDER`
-    FOREIGN KEY (`PARENT_FOLDER_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_folder` (`FOLDER_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_folder_access
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_folder_access` (
-  `FOLDER_ACCESS_ID` DECIMAL(11,0) NOT NULL,
-  `FOLDER_ID` DECIMAL(11,0) NOT NULL,
-  `ORDER_NO` DECIMAL(11,0) NOT NULL,
-  `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `READ_ONLY_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
-  PRIMARY KEY (`FOLDER_ACCESS_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_hist_user_map
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_hist_user_map` (
-  `HIST_ID` INT(11) NOT NULL,
-  `USER_ID` INT(11) NOT NULL,
-  PRIMARY KEY (`HIST_ID`, `USER_ID`),
-  INDEX `SYS_C0014617` (`USER_ID` ASC),
-  CONSTRAINT `SYS_C0014616`
-    FOREIGN KEY (`HIST_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_report_file_history` (`HIST_ID`),
-  CONSTRAINT `SYS_C0014617`
-    FOREIGN KEY (`USER_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_lu_file_type
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_lu_file_type` (
-  `LOOKUP_ID` DECIMAL(2,0) NOT NULL,
-  `LOOKUP_DESCR` VARCHAR(255) NOT NULL,
-  `ACTIVE_YN` CHAR(1) NULL DEFAULT 'Y',
-  `ERROR_CODE` DECIMAL(11,0) NULL DEFAULT NULL,
-  PRIMARY KEY (`LOOKUP_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_raptor_action_img
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_raptor_action_img` (
-  `IMAGE_ID` VARCHAR(100) NOT NULL,
-  `IMAGE_LOC` VARCHAR(400) NULL DEFAULT NULL,
-  PRIMARY KEY (`IMAGE_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_raptor_pdf_img
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_raptor_pdf_img` (
-  `IMAGE_ID` VARCHAR(100) NOT NULL,
-  `IMAGE_LOC` VARCHAR(400) NULL DEFAULT NULL,
-  PRIMARY KEY (`IMAGE_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_remote_schema_info
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_remote_schema_info` (
-  `SCHEMA_PREFIX` VARCHAR(5) NOT NULL,
-  `SCHEMA_DESC` VARCHAR(75) NOT NULL,
-  `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHEMA_PREFIX`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report` (
-  `REP_ID` DECIMAL(11,0) NOT NULL,
-  `TITLE` VARCHAR(100) NOT NULL,
-  `DESCR` VARCHAR(255) NULL DEFAULT NULL,
-  `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
-  `REPORT_XML` TEXT NULL DEFAULT NULL,
-  `CREATE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `CREATE_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `MAINT_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `MAINT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `MENU_ID` VARCHAR(500) NULL DEFAULT NULL,
-  `MENU_APPROVED_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
-  `OWNER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `FOLDER_ID` INT(11) NULL DEFAULT '0',
-  `DASHBOARD_TYPE_YN` VARCHAR(1) NULL DEFAULT 'N',
-  `DASHBOARD_YN` VARCHAR(1) NULL DEFAULT 'N',
-  PRIMARY KEY (`REP_ID`),
-  INDEX `CR_REPORT_CREATE_IDPUBLIC_YNTITLE` (`CREATE_ID` ASC, `PUBLIC_YN` ASC, `TITLE` ASC))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report_access
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_access` (
-  `REP_ID` DECIMAL(11,0) NOT NULL,
-  `ORDER_NO` DECIMAL(11,0) NOT NULL,
-  `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `READ_ONLY_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
-  PRIMARY KEY (`REP_ID`, `ORDER_NO`),
-  CONSTRAINT `FK_CR_REPOR_REF_8550_CR_REPOR`
-    FOREIGN KEY (`REP_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report_dwnld_log
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_dwnld_log` (
-  `USER_ID` DECIMAL(11,0) NOT NULL,
-  `REP_ID` INT(11) NOT NULL,
-  `FILE_NAME` VARCHAR(100) NOT NULL,
-  `DWNLD_START_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `RECORD_READY_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `FILTER_PARAMS` VARCHAR(2000) NULL DEFAULT NULL)
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report_email_sent_log
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_email_sent_log` (
-  `LOG_ID` INT(11) NOT NULL,
-  `SCHEDULE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `GEN_KEY` VARCHAR(25) NOT NULL,
-  `REP_ID` DECIMAL(11,0) NOT NULL,
-  `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `SENT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `ACCESS_FLAG` VARCHAR(1) NOT NULL DEFAULT 'Y',
-  `TOUCH_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  PRIMARY KEY (`LOG_ID`),
-  INDEX `FK_CR_REPORT_REP_ID` (`REP_ID` ASC),
-  CONSTRAINT `FK_CR_REPORT_REP_ID`
-    FOREIGN KEY (`REP_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report_file_history
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_file_history` (
-  `HIST_ID` INT(11) NOT NULL,
-  `SCHED_USER_ID` DECIMAL(11,0) NOT NULL,
-  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
-  `USER_ID` DECIMAL(11,0) NOT NULL,
-  `REP_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `RUN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `RECURRENCE` VARCHAR(50) NULL DEFAULT NULL,
-  `FILE_TYPE_ID` DECIMAL(2,0) NULL DEFAULT NULL,
-  `FILE_NAME` VARCHAR(80) NULL DEFAULT NULL,
-  `FILE_BLOB` BLOB NULL DEFAULT NULL,
-  `FILE_SIZE` DECIMAL(11,0) NULL DEFAULT NULL,
-  `RAPTOR_URL` VARCHAR(4000) NULL DEFAULT NULL,
-  `ERROR_YN` CHAR(1) NULL DEFAULT 'N',
-  `ERROR_CODE` DECIMAL(11,0) NULL DEFAULT NULL,
-  `DELETED_YN` CHAR(1) NULL DEFAULT 'N',
-  `DELETED_BY` DECIMAL(38,0) NULL DEFAULT NULL,
-  PRIMARY KEY (`HIST_ID`),
-  INDEX `SYS_C0014614` (`FILE_TYPE_ID` ASC),
-  INDEX `SYS_C0014615` (`REP_ID` ASC),
-  CONSTRAINT `SYS_C0014614`
-    FOREIGN KEY (`FILE_TYPE_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_lu_file_type` (`LOOKUP_ID`),
-  CONSTRAINT `SYS_C0014615`
-    FOREIGN KEY (`REP_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report_log
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_log` (
-  `REP_ID` DECIMAL(11,0) NOT NULL,
-  `LOG_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `USER_ID` DECIMAL(11,0) NOT NULL,
-  `ACTION` VARCHAR(2000) NOT NULL,
-  `ACTION_VALUE` VARCHAR(50) NULL DEFAULT NULL,
-  `FORM_FIELDS` VARCHAR(4000) NULL DEFAULT NULL,
-  INDEX `FK_CR_REPOR_REF_17645_CR_REPOR` (`REP_ID` ASC),
-  CONSTRAINT `FK_CR_REPOR_REF_17645_CR_REPOR`
-    FOREIGN KEY (`REP_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report_schedule
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_schedule` (
-  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
-  `SCHED_USER_ID` DECIMAL(11,0) NOT NULL,
-  `REP_ID` DECIMAL(11,0) NOT NULL,
-  `ENABLED_YN` VARCHAR(1) NOT NULL,
-  `START_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `END_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `RUN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `RECURRENCE` VARCHAR(50) NULL DEFAULT NULL,
-  `CONDITIONAL_YN` VARCHAR(1) NOT NULL,
-  `CONDITION_SQL` VARCHAR(4000) NULL DEFAULT NULL,
-  `NOTIFY_TYPE` INT(11) NULL DEFAULT '0',
-  `MAX_ROW` INT(11) NULL DEFAULT '1000',
-  `INITIAL_FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
-  `PROCESSED_FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
-  `FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
-  `CONDITION_LARGE_SQL` TEXT NULL DEFAULT NULL,
-  `ENCRYPT_YN` CHAR(1) NULL DEFAULT 'N',
-  `ATTACHMENT_YN` CHAR(1) NULL DEFAULT 'Y',
-  PRIMARY KEY (`SCHEDULE_ID`),
-  INDEX `FK_CR_REPOR_REF_14707_CR_REPOR` (`REP_ID` ASC),
-  CONSTRAINT `FK_CR_REPOR_REF_14707_CR_REPOR`
-    FOREIGN KEY (`REP_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report_schedule_users
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_schedule_users` (
-  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
-  `REP_ID` DECIMAL(11,0) NOT NULL,
-  `USER_ID` DECIMAL(11,0) NOT NULL,
-  `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `ORDER_NO` DECIMAL(11,0) NOT NULL,
-  PRIMARY KEY (`SCHEDULE_ID`, `REP_ID`, `USER_ID`, `ORDER_NO`),
-  CONSTRAINT `FK_CR_REPOR_REF_14716_CR_REPOR`
-    FOREIGN KEY (`SCHEDULE_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_report_schedule` (`SCHEDULE_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_report_template_map
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_template_map` (
-  `REPORT_ID` INT(11) NOT NULL,
-  `TEMPLATE_FILE` VARCHAR(200) NULL DEFAULT NULL,
-  PRIMARY KEY (`REPORT_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_schedule_activity_log
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_schedule_activity_log` (
-  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
-  `URL` VARCHAR(4000) NULL DEFAULT NULL,
-  `NOTES` VARCHAR(2000) NULL DEFAULT NULL,
-  `RUN_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_table_join
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_table_join` (
-  `SRC_TABLE_NAME` VARCHAR(30) NOT NULL,
-  `DEST_TABLE_NAME` VARCHAR(30) NOT NULL,
-  `JOIN_EXPR` VARCHAR(500) NOT NULL,
-  INDEX `CR_TABLE_JOIN_DEST_TABLE_NAME` (`DEST_TABLE_NAME` ASC),
-  INDEX `CR_TABLE_JOIN_SRC_TABLE_NAME` (`SRC_TABLE_NAME` ASC),
-  CONSTRAINT `FK_CR_TABLE_REF_311_CR_TAB`
-    FOREIGN KEY (`SRC_TABLE_NAME`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_table_source` (`TABLE_NAME`),
-  CONSTRAINT `FK_CR_TABLE_REF_315_CR_TAB`
-    FOREIGN KEY (`DEST_TABLE_NAME`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_table_source` (`TABLE_NAME`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_table_role
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_table_role` (
-  `TABLE_NAME` VARCHAR(30) NOT NULL,
-  `ROLE_ID` DECIMAL(11,0) NOT NULL,
-  PRIMARY KEY (`TABLE_NAME`, `ROLE_ID`),
-  CONSTRAINT `FK_CR_TABLE_REF_32384_CR_TABLE`
-    FOREIGN KEY (`TABLE_NAME`)
-    REFERENCES `vid_openecomp_epsdk`.`cr_table_source` (`TABLE_NAME`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.cr_table_source
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_table_source` (
-  `TABLE_NAME` VARCHAR(30) NOT NULL,
-  `DISPLAY_NAME` VARCHAR(30) NOT NULL,
-  `PK_FIELDS` VARCHAR(200) NULL DEFAULT NULL,
-  `WEB_VIEW_ACTION` VARCHAR(50) NULL DEFAULT NULL,
-  `LARGE_DATA_SOURCE_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
-  `FILTER_SQL` VARCHAR(4000) NULL DEFAULT NULL,
-  `SOURCE_DB` VARCHAR(50) NULL DEFAULT NULL,
-  PRIMARY KEY (`TABLE_NAME`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_portal.fn_app
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_app` (
-  `APP_ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `APP_NAME` VARCHAR(100) NOT NULL DEFAULT '?',
-  `APP_IMAGE_URL` VARCHAR(256) NULL DEFAULT NULL,
-  `APP_DESCRIPTION` VARCHAR(512) NULL DEFAULT NULL,
-  `APP_NOTES` VARCHAR(4096) NULL DEFAULT NULL,
-  `APP_URL` VARCHAR(256) NULL DEFAULT NULL,
-  `APP_ALTERNATE_URL` VARCHAR(256) NULL DEFAULT NULL,
-  `APP_REST_ENDPOINT` VARCHAR(2000) NULL DEFAULT NULL,
-  `ML_APP_NAME` VARCHAR(50) NOT NULL DEFAULT '?',
-  `ML_APP_ADMIN_ID` VARCHAR(7) NOT NULL DEFAULT '?',
-  `MOTS_ID` INT(11) NULL DEFAULT NULL,
-  `APP_PASSWORD` VARCHAR(256) NOT NULL DEFAULT '?',
-  `OPEN` CHAR(1) NULL DEFAULT 'N',
-  `ENABLED` CHAR(1) NULL DEFAULT 'Y',
-  `THUMBNAIL` MEDIUMBLOB NULL DEFAULT NULL,
-  `APP_USERNAME` VARCHAR(50) NULL DEFAULT NULL,
-  `UEB_KEY` VARCHAR(256) NULL DEFAULT NULL,
-  `UEB_SECRET` VARCHAR(256) NULL DEFAULT NULL,
-  `UEB_TOPIC_NAME` VARCHAR(256) NULL DEFAULT NULL,
-  PRIMARY KEY (`APP_ID`))
-ENGINE = InnoDB
-AUTO_INCREMENT = 2
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_app_mme_cpu
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_app_mme_cpu` (
-  `MME` VARCHAR(200) NULL DEFAULT NULL,
-  `YEARMONTH` INT(11) NULL DEFAULT NULL,
-  `SCTP_CPU` INT(11) NULL DEFAULT NULL,
-  `AP_CPU` INT(11) NULL DEFAULT NULL,
-  `DP_CPU` INT(11) NULL DEFAULT NULL,
-  `ROUTER_CPU` INT(11) NULL DEFAULT NULL,
-  `PEB_CPU` INT(11) NULL DEFAULT NULL,
-  `SAU` INT(11) NULL DEFAULT NULL)
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_audit_action
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_audit_action` (
-  `AUDIT_ACTION_ID` INT(11) NOT NULL,
-  `CLASS_NAME` VARCHAR(500) NOT NULL,
-  `METHOD_NAME` VARCHAR(50) NOT NULL,
-  `AUDIT_ACTION_CD` VARCHAR(20) NOT NULL,
-  `AUDIT_ACTION_DESC` VARCHAR(200) NULL DEFAULT NULL,
-  `ACTIVE_YN` VARCHAR(1) NULL DEFAULT NULL,
-  PRIMARY KEY (`AUDIT_ACTION_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_audit_action_log
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_audit_action_log` (
-  `AUDIT_LOG_ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `AUDIT_ACTION_CD` VARCHAR(200) NULL DEFAULT NULL,
-  `ACTION_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `CLASS_NAME` VARCHAR(100) NULL DEFAULT NULL,
-  `METHOD_NAME` VARCHAR(50) NULL DEFAULT NULL,
-  `SUCCESS_MSG` VARCHAR(20) NULL DEFAULT NULL,
-  `ERROR_MSG` VARCHAR(500) NULL DEFAULT NULL,
-  PRIMARY KEY (`AUDIT_LOG_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_audit_log
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_audit_log` (
-  `LOG_ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `USER_ID` INT(11) NOT NULL,
-  `ACTIVITY_CD` VARCHAR(50) NOT NULL,
-  `AUDIT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `COMMENTS` VARCHAR(1000) NULL DEFAULT NULL,
-  `AFFECTED_RECORD_ID_BK` VARCHAR(500) NULL DEFAULT NULL,
-  `AFFECTED_RECORD_ID` VARCHAR(4000) NULL DEFAULT NULL,
-  PRIMARY KEY (`LOG_ID`),
-  INDEX `FN_AUDIT_LOG_ACTIVITY_CD` (`ACTIVITY_CD` ASC),
-  INDEX `FN_AUDIT_LOG_USER_ID` (`USER_ID` ASC),
-  CONSTRAINT `FK_FN_AUDIT_REF_205_FN_LU_AC`
-    FOREIGN KEY (`ACTIVITY_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_lu_activity` (`ACTIVITY_CD`),
-  CONSTRAINT `FK_FN_AUDIT_REF_209_FN_USER`
-    FOREIGN KEY (`USER_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_broadcast_message
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_broadcast_message` (
-  `MESSAGE_ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `MESSAGE_TEXT` VARCHAR(1000) NOT NULL,
-  `MESSAGE_LOCATION_ID` DECIMAL(11,0) NOT NULL,
-  `BROADCAST_START_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `BROADCAST_END_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `ACTIVE_YN` CHAR(1) NOT NULL DEFAULT 'Y',
-  `SORT_ORDER` DECIMAL(4,0) NOT NULL,
-  `BROADCAST_SITE_CD` VARCHAR(50) NULL DEFAULT NULL,
-  PRIMARY KEY (`MESSAGE_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_chat_logs
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_chat_logs` (
-  `CHAT_LOG_ID` INT(11) NOT NULL,
-  `CHAT_ROOM_ID` INT(11) NULL DEFAULT NULL,
-  `USER_ID` INT(11) NULL DEFAULT NULL,
-  `MESSAGE` VARCHAR(1000) NULL DEFAULT NULL,
-  `MESSAGE_DATE_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  PRIMARY KEY (`CHAT_LOG_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_chat_room
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_chat_room` (
-  `CHAT_ROOM_ID` INT(11) NOT NULL,
-  `NAME` VARCHAR(50) NOT NULL,
-  `DESCRIPTION` VARCHAR(500) NULL DEFAULT NULL,
-  `OWNER_ID` INT(11) NULL DEFAULT NULL,
-  `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `UPDATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  PRIMARY KEY (`CHAT_ROOM_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_chat_users
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_chat_users` (
-  `CHAT_ROOM_ID` INT(11) NULL DEFAULT NULL,
-  `USER_ID` INT(11) NULL DEFAULT NULL,
-  `LAST_ACTIVITY_DATE_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `CHAT_STATUS` VARCHAR(20) NULL DEFAULT NULL,
-  `ID` INT(11) NOT NULL,
-  PRIMARY KEY (`ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_datasource
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_datasource` (
-  `ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `NAME` VARCHAR(50) NULL DEFAULT NULL,
-  `DRIVER_NAME` VARCHAR(256) NULL DEFAULT NULL,
-  `SERVER` VARCHAR(256) NULL DEFAULT NULL,
-  `PORT` INT(11) NULL DEFAULT NULL,
-  `USER_NAME` VARCHAR(256) NULL DEFAULT NULL,
-  `PASSWORD` VARCHAR(256) NULL DEFAULT NULL,
-  `URL` VARCHAR(256) NULL DEFAULT NULL,
-  `MIN_POOL_SIZE` INT(11) NULL DEFAULT NULL,
-  `MAX_POOL_SIZE` INT(11) NULL DEFAULT NULL,
-  `ADAPTER_ID` INT(11) NULL DEFAULT NULL,
-  `DS_TYPE` VARCHAR(20) NULL DEFAULT NULL,
-  PRIMARY KEY (`ID`))
-ENGINE = InnoDB
-AUTO_INCREMENT = 4
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_function
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_function` (
-  `FUNCTION_CD` VARCHAR(30) NOT NULL,
-  `FUNCTION_NAME` VARCHAR(50) NOT NULL,
-  `type` VARCHAR(20) NOT NULL,
-  `action` VARCHAR(20) NOT NULL,
-  PRIMARY KEY (`FUNCTION_CD`),
-  CONSTRAINT `function` UNIQUE (FUNCTION_CD,TYPE,ACTION))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_license
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license` (
-  `id` DECIMAL(11,0) NOT NULL,
-  `app_id` DECIMAL(11,0) NOT NULL,
-  `ip_address` VARCHAR(100) NOT NULL,
-  `quantum_version_id` DECIMAL(11,0) NOT NULL,
-  `created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `modified_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `created_id` DECIMAL(11,0) NULL DEFAULT NULL,
-  `modified_id` DECIMAL(11,0) NULL DEFAULT NULL,
-  `end_date` TIMESTAMP NOT NULL DEFAULT '2036-01-19 03:14:07',
-  PRIMARY KEY (`id`),
-  INDEX `fn_license_r02` (`quantum_version_id` ASC),
-  CONSTRAINT `fn_license_r02`
-    FOREIGN KEY (`quantum_version_id`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_license_version` (`id`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_license_app
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license_app` (
-  `id` DECIMAL(11,0) NOT NULL,
-  `app_name` VARCHAR(100) NOT NULL,
-  `ctxt_name` VARCHAR(100) NULL DEFAULT NULL,
-  INDEX `fn_license_app_ID` (`id` ASC))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_license_contact
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license_contact` (
-  `id` INT(11) NOT NULL,
-  `license_id` INT(11) NULL DEFAULT NULL,
-  `sbcid` VARCHAR(20) NULL DEFAULT NULL,
-  PRIMARY KEY (`id`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_license_history
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license_history` (
-  `license_id` DECIMAL(11,0) NULL DEFAULT NULL,
-  `app_id` DECIMAL(11,0) NULL DEFAULT NULL,
-  `ip_address` VARCHAR(100) NULL DEFAULT NULL,
-  `quantum_version_id` DECIMAL(11,0) NULL DEFAULT NULL,
-  `created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `modified_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `created_id` DECIMAL(11,0) NULL DEFAULT NULL,
-  `modified_id` DECIMAL(11,0) NULL DEFAULT NULL,
-  `id` DECIMAL(11,0) NOT NULL,
-  PRIMARY KEY (`id`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_license_version
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license_version` (
-  `id` DECIMAL(11,0) NOT NULL,
-  `quantum_version` VARCHAR(25) NULL DEFAULT NULL,
-  PRIMARY KEY (`id`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_activity
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_activity` (
-  `ACTIVITY_CD` VARCHAR(50) NOT NULL,
-  `ACTIVITY` VARCHAR(50) NOT NULL,
-  PRIMARY KEY (`ACTIVITY_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_alert_method
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_alert_method` (
-  `ALERT_METHOD_CD` VARCHAR(10) NOT NULL,
-  `ALERT_METHOD` VARCHAR(50) NOT NULL,
-  PRIMARY KEY (`ALERT_METHOD_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_broadcast_site
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_broadcast_site` (
-  `BROADCAST_SITE_CD` VARCHAR(50) NOT NULL,
-  `BROADCAST_SITE_DESCR` VARCHAR(100) NULL DEFAULT NULL,
-  PRIMARY KEY (`BROADCAST_SITE_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_call_times
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_call_times` (
-  `CALL_TIME_ID` DECIMAL(10,0) NOT NULL,
-  `CALL_TIME_AMOUNT` DECIMAL(10,0) NOT NULL,
-  `CALL_TIME_DISPLAY` VARCHAR(50) NOT NULL,
-  PRIMARY KEY (`CALL_TIME_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_city
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_city` (
-  `CITY_CD` VARCHAR(2) NOT NULL,
-  `CITY` VARCHAR(100) NOT NULL,
-  `STATE_CD` VARCHAR(2) NOT NULL,
-  PRIMARY KEY (`CITY_CD`, `STATE_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_country
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_country` (
-  `COUNTRY_CD` VARCHAR(3) NOT NULL,
-  `COUNTRY` VARCHAR(100) NOT NULL,
-  `FULL_NAME` VARCHAR(100) NULL DEFAULT NULL,
-  `WEBPHONE_COUNTRY_LABEL` VARCHAR(30) NULL DEFAULT NULL,
-  PRIMARY KEY (`COUNTRY_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_menu_set
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_menu_set` (
-  `MENU_SET_CD` VARCHAR(10) NOT NULL,
-  `MENU_SET_NAME` VARCHAR(50) NOT NULL,
-  PRIMARY KEY (`MENU_SET_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_priority
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_priority` (
-  `PRIORITY_ID` DECIMAL(11,0) NOT NULL,
-  `PRIORITY` VARCHAR(50) NOT NULL,
-  `ACTIVE_YN` CHAR(1) NOT NULL,
-  `SORT_ORDER` DECIMAL(5,0) NULL DEFAULT NULL,
-  PRIMARY KEY (`PRIORITY_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_role_type
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_role_type` (
-  `ROLE_TYPE_ID` DECIMAL(11,0) NOT NULL,
-  `ROLE_TYPE` VARCHAR(50) NOT NULL,
-  PRIMARY KEY (`ROLE_TYPE_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_state
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_state` (
-  `STATE_CD` VARCHAR(2) NOT NULL,
-  `STATE` VARCHAR(100) NOT NULL,
-  PRIMARY KEY (`STATE_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_tab_set
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_tab_set` (
-  `TAB_SET_CD` VARCHAR(30) NOT NULL,
-  `TAB_SET_NAME` VARCHAR(50) NOT NULL,
-  PRIMARY KEY (`TAB_SET_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_lu_timezone
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_timezone` (
-  `TIMEZONE_ID` INT(11) NOT NULL,
-  `TIMEZONE_NAME` VARCHAR(100) NOT NULL,
-  `TIMEZONE_VALUE` VARCHAR(100) NOT NULL,
-  PRIMARY KEY (`TIMEZONE_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_menu
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_menu` (
-  `MENU_ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `LABEL` VARCHAR(100) NULL DEFAULT NULL,
-  `PARENT_ID` INT(11) NULL DEFAULT NULL,
-  `SORT_ORDER` DECIMAL(4,0) NULL DEFAULT NULL,
-  `ACTION` VARCHAR(200) NULL DEFAULT NULL,
-  `FUNCTION_CD` VARCHAR(30) NULL DEFAULT NULL,
-  `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
-  `SERVLET` VARCHAR(50) NULL DEFAULT NULL,
-  `QUERY_STRING` VARCHAR(200) NULL DEFAULT NULL,
-  `EXTERNAL_URL` VARCHAR(200) NULL DEFAULT NULL,
-  `TARGET` VARCHAR(25) NULL DEFAULT NULL,
-  `MENU_SET_CD` VARCHAR(10) NULL DEFAULT 'APP',
-  `SEPARATOR_YN` CHAR(1) NULL DEFAULT 'N',
-  `IMAGE_SRC` VARCHAR(100) NULL DEFAULT NULL,
-  PRIMARY KEY (`MENU_ID`),
-  INDEX `FK_FN_MENU_REF_196_FN_MENU` (`PARENT_ID` ASC),
-  INDEX `FK_FN_MENU_MENU_SET_CD` (`MENU_SET_CD` ASC),
-  INDEX `FN_MENU_FUNCTION_CD` (`FUNCTION_CD` ASC),
-  CONSTRAINT `FK_FN_MENU_MENU_SET_CD`
-    FOREIGN KEY (`MENU_SET_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_lu_menu_set` (`MENU_SET_CD`),
-  CONSTRAINT `FK_FN_MENU_REF_196_FN_MENU`
-    FOREIGN KEY (`PARENT_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_menu` (`MENU_ID`),
-  CONSTRAINT `FK_FN_MENU_REF_223_FN_FUNCT`
-    FOREIGN KEY (`FUNCTION_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_function` (`FUNCTION_CD`))
-ENGINE = InnoDB
-AUTO_INCREMENT = 150029
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_org
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_org` (
-  `ORG_ID` INT(11) NOT NULL,
-  `ORG_NAME` VARCHAR(50) NOT NULL,
-  `ACCESS_CD` VARCHAR(10) NULL DEFAULT NULL,
-  PRIMARY KEY (`ORG_ID`),
-  INDEX `FN_ORG_ACCESS_CD` (`ACCESS_CD` ASC))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_blob_triggers
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_blob_triggers` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
-  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
-  `BLOB_DATA` BLOB NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
-  INDEX `SCHED_NAME` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC),
-  CONSTRAINT `fn_qz_blob_triggers_ibfk_1`
-    FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_calendars
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_calendars` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `CALENDAR_NAME` VARCHAR(200) NOT NULL,
-  `CALENDAR` BLOB NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_cron_triggers
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_cron_triggers` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
-  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
-  `CRON_EXPRESSION` VARCHAR(120) NOT NULL,
-  `TIME_ZONE_ID` VARCHAR(80) NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
-  CONSTRAINT `fn_qz_cron_triggers_ibfk_1`
-    FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_fired_triggers
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_fired_triggers` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `ENTRY_ID` VARCHAR(95) NOT NULL,
-  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
-  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
-  `INSTANCE_NAME` VARCHAR(200) NOT NULL,
-  `FIRED_TIME` BIGINT(13) NOT NULL,
-  `SCHED_TIME` BIGINT(13) NOT NULL,
-  `PRIORITY` INT(11) NOT NULL,
-  `STATE` VARCHAR(16) NOT NULL,
-  `JOB_NAME` VARCHAR(200) NULL DEFAULT NULL,
-  `JOB_GROUP` VARCHAR(200) NULL DEFAULT NULL,
-  `IS_NONCONCURRENT` VARCHAR(1) NULL DEFAULT NULL,
-  `REQUESTS_RECOVERY` VARCHAR(1) NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`),
-  INDEX `IDX_FN_QZ_FT_TRIG_INST_NAME` (`SCHED_NAME` ASC, `INSTANCE_NAME` ASC),
-  INDEX `IDX_FN_QZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME` ASC, `INSTANCE_NAME` ASC, `REQUESTS_RECOVERY` ASC),
-  INDEX `IDX_FN_QZ_FT_J_G` (`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC),
-  INDEX `IDX_FN_QZ_FT_JG` (`SCHED_NAME` ASC, `JOB_GROUP` ASC),
-  INDEX `IDX_FN_QZ_FT_T_G` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC),
-  INDEX `IDX_FN_QZ_FT_TG` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_job_details
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_job_details` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `JOB_NAME` VARCHAR(200) NOT NULL,
-  `JOB_GROUP` VARCHAR(200) NOT NULL,
-  `DESCRIPTION` VARCHAR(250) NULL DEFAULT NULL,
-  `JOB_CLASS_NAME` VARCHAR(250) NOT NULL,
-  `IS_DURABLE` VARCHAR(1) NOT NULL,
-  `IS_NONCONCURRENT` VARCHAR(1) NOT NULL,
-  `IS_UPDATE_DATA` VARCHAR(1) NOT NULL,
-  `REQUESTS_RECOVERY` VARCHAR(1) NOT NULL,
-  `JOB_DATA` BLOB NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`),
-  INDEX `IDX_FN_QZ_J_REQ_RECOVERY` (`SCHED_NAME` ASC, `REQUESTS_RECOVERY` ASC),
-  INDEX `IDX_FN_QZ_J_GRP` (`SCHED_NAME` ASC, `JOB_GROUP` ASC))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_locks
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_locks` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `LOCK_NAME` VARCHAR(40) NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_paused_trigger_grps
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_paused_trigger_grps` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_scheduler_state
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_scheduler_state` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `INSTANCE_NAME` VARCHAR(200) NOT NULL,
-  `LAST_CHECKIN_TIME` BIGINT(13) NOT NULL,
-  `CHECKIN_INTERVAL` BIGINT(13) NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_simple_triggers
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_simple_triggers` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
-  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
-  `REPEAT_COUNT` BIGINT(7) NOT NULL,
-  `REPEAT_INTERVAL` BIGINT(12) NOT NULL,
-  `TIMES_TRIGGERED` BIGINT(10) NOT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
-  CONSTRAINT `fn_qz_simple_triggers_ibfk_1`
-    FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_simprop_triggers
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_simprop_triggers` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
-  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
-  `STR_PROP_1` VARCHAR(512) NULL DEFAULT NULL,
-  `STR_PROP_2` VARCHAR(512) NULL DEFAULT NULL,
-  `STR_PROP_3` VARCHAR(512) NULL DEFAULT NULL,
-  `INT_PROP_1` INT(11) NULL DEFAULT NULL,
-  `INT_PROP_2` INT(11) NULL DEFAULT NULL,
-  `LONG_PROP_1` BIGINT(20) NULL DEFAULT NULL,
-  `LONG_PROP_2` BIGINT(20) NULL DEFAULT NULL,
-  `DEC_PROP_1` DECIMAL(13,4) NULL DEFAULT NULL,
-  `DEC_PROP_2` DECIMAL(13,4) NULL DEFAULT NULL,
-  `BOOL_PROP_1` VARCHAR(1) NULL DEFAULT NULL,
-  `BOOL_PROP_2` VARCHAR(1) NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
-  CONSTRAINT `fn_qz_simprop_triggers_ibfk_1`
-    FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_qz_triggers
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_triggers` (
-  `SCHED_NAME` VARCHAR(120) NOT NULL,
-  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
-  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
-  `JOB_NAME` VARCHAR(200) NOT NULL,
-  `JOB_GROUP` VARCHAR(200) NOT NULL,
-  `DESCRIPTION` VARCHAR(250) NULL DEFAULT NULL,
-  `NEXT_FIRE_TIME` BIGINT(13) NULL DEFAULT NULL,
-  `PREV_FIRE_TIME` BIGINT(13) NULL DEFAULT NULL,
-  `PRIORITY` INT(11) NULL DEFAULT NULL,
-  `TRIGGER_STATE` VARCHAR(16) NOT NULL,
-  `TRIGGER_TYPE` VARCHAR(8) NOT NULL,
-  `START_TIME` BIGINT(13) NOT NULL,
-  `END_TIME` BIGINT(13) NULL DEFAULT NULL,
-  `CALENDAR_NAME` VARCHAR(200) NULL DEFAULT NULL,
-  `MISFIRE_INSTR` SMALLINT(2) NULL DEFAULT NULL,
-  `JOB_DATA` BLOB NULL DEFAULT NULL,
-  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
-  INDEX `IDX_FN_QZ_T_J` (`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC),
-  INDEX `IDX_FN_QZ_T_JG` (`SCHED_NAME` ASC, `JOB_GROUP` ASC),
-  INDEX `IDX_FN_QZ_T_C` (`SCHED_NAME` ASC, `CALENDAR_NAME` ASC),
-  INDEX `IDX_FN_QZ_T_G` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC),
-  INDEX `IDX_FN_QZ_T_STATE` (`SCHED_NAME` ASC, `TRIGGER_STATE` ASC),
-  INDEX `IDX_FN_QZ_T_N_STATE` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
-  INDEX `IDX_FN_QZ_T_N_G_STATE` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
-  INDEX `IDX_FN_QZ_T_NEXT_FIRE_TIME` (`SCHED_NAME` ASC, `NEXT_FIRE_TIME` ASC),
-  INDEX `IDX_FN_QZ_T_NFT_ST` (`SCHED_NAME` ASC, `TRIGGER_STATE` ASC, `NEXT_FIRE_TIME` ASC),
-  INDEX `IDX_FN_QZ_T_NFT_MISFIRE` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC),
-  INDEX `IDX_FN_QZ_T_NFT_ST_MISFIRE` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_STATE` ASC),
-  INDEX `IDX_FN_QZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
-  CONSTRAINT `fn_qz_triggers_ibfk_1`
-    FOREIGN KEY (`SCHED_NAME` , `JOB_NAME` , `JOB_GROUP`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_qz_job_details` (`SCHED_NAME` , `JOB_NAME` , `JOB_GROUP`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_restricted_url
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_restricted_url` (
-  `RESTRICTED_URL` VARCHAR(250) NOT NULL,
-  `FUNCTION_CD` VARCHAR(30) NOT NULL,
-  PRIMARY KEY (`RESTRICTED_URL`, `FUNCTION_CD`),
-  INDEX `FK_RESTRICTED_URL_FUNCTION_CD` (`FUNCTION_CD` ASC),
-  CONSTRAINT `FK_RESTRICTED_URL_FUNCTION_CD`
-    FOREIGN KEY (`FUNCTION_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_function` (`FUNCTION_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_role
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_role` (
-  `ROLE_ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `ROLE_NAME` VARCHAR(255) NOT NULL,
-  `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
-  `PRIORITY` DECIMAL(4,0) NULL DEFAULT NULL,
-  PRIMARY KEY (`ROLE_ID`))
-ENGINE = InnoDB
-AUTO_INCREMENT = 17
-DEFAULT CHARACTER SET = utf8;
-
-ALTER TABLE `vid_openecomp_epsdk`.`fn_role` MODIFY `ROLE_NAME` VARCHAR (255);
-
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_role_composite
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_role_composite` (
-  `PARENT_ROLE_ID` INT(11) NOT NULL,
-  `CHILD_ROLE_ID` INT(11) NOT NULL,
-  PRIMARY KEY (`PARENT_ROLE_ID`, `CHILD_ROLE_ID`),
-  INDEX `FK_FN_ROLE_COMPOSITE_CHILD` (`CHILD_ROLE_ID` ASC),
-  CONSTRAINT `FK_FN_ROLE_COMPOSITE_CHILD`
-    FOREIGN KEY (`CHILD_ROLE_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`),
-  CONSTRAINT `FK_FN_ROLE_COMPOSITE_PARENT`
-    FOREIGN KEY (`PARENT_ROLE_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_role_function
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_role_function` (
-  `ROLE_ID` INT(11) NOT NULL,
-  `FUNCTION_CD` VARCHAR(30) NOT NULL,
-  PRIMARY KEY (`ROLE_ID`, `FUNCTION_CD`),
-  INDEX `FN_ROLE_FUNCTION_FUNCTION_CD` (`FUNCTION_CD` ASC),
-  INDEX `FN_ROLE_FUNCTION_ROLE_ID` (`ROLE_ID` ASC),
-  CONSTRAINT `FK_FN_ROLE__REF_198_FN_ROLE`
-    FOREIGN KEY (`ROLE_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`),
-  CONSTRAINT `FK_FN_ROLE__REF_201_FN_FUNCT`
-    FOREIGN KEY (`FUNCTION_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_function` (`FUNCTION_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_schedule_workflows
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_schedule_workflows` (
-  `id_schedule_workflows` BIGINT(25) NOT NULL AUTO_INCREMENT,
-  `workflow_server_url` VARCHAR(45) NULL DEFAULT NULL,
-  `workflow_key` VARCHAR(45) NOT NULL,
-  `workflow_arguments` VARCHAR(45) NULL DEFAULT NULL,
-  `startDateTimeCron` VARCHAR(45) NULL DEFAULT NULL,
-  `endDateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `start_date_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `recurrence` VARCHAR(45) NULL DEFAULT NULL,
-  PRIMARY KEY (`id_schedule_workflows`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_tab
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_tab` (
-  `TAB_CD` VARCHAR(30) NOT NULL,
-  `TAB_NAME` VARCHAR(50) NOT NULL,
-  `TAB_DESCR` VARCHAR(100) NULL DEFAULT NULL,
-  `ACTION` VARCHAR(100) NOT NULL,
-  `FUNCTION_CD` VARCHAR(30) NOT NULL,
-  `ACTIVE_YN` CHAR(1) NOT NULL,
-  `SORT_ORDER` DECIMAL(11,0) NOT NULL,
-  `PARENT_TAB_CD` VARCHAR(30) NULL DEFAULT NULL,
-  `TAB_SET_CD` VARCHAR(30) NULL DEFAULT NULL,
-  PRIMARY KEY (`TAB_CD`),
-  INDEX `FK_FN_TAB_FUNCTION_CD` (`FUNCTION_CD` ASC),
-  INDEX `FK_FN_TAB_SET_CD` (`TAB_SET_CD` ASC),
-  CONSTRAINT `FK_FN_TAB_FUNCTION_CD`
-    FOREIGN KEY (`FUNCTION_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_function` (`FUNCTION_CD`),
-  CONSTRAINT `FK_FN_TAB_SET_CD`
-    FOREIGN KEY (`TAB_SET_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_lu_tab_set` (`TAB_SET_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_tab_selected
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_tab_selected` (
-  `SELECTED_TAB_CD` VARCHAR(30) NOT NULL,
-  `TAB_URI` VARCHAR(40) NOT NULL,
-  PRIMARY KEY (`SELECTED_TAB_CD`, `TAB_URI`),
-  CONSTRAINT `FK_FN_TAB_SELECTED_TAB_CD`
-    FOREIGN KEY (`SELECTED_TAB_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_tab` (`TAB_CD`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_user
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_user` (
-  `USER_ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `ORG_ID` INT(11) NULL DEFAULT NULL,
-  `MANAGER_ID` INT(11) NULL DEFAULT NULL,
-  `FIRST_NAME` VARCHAR(50) NULL DEFAULT NULL,
-  `MIDDLE_NAME` VARCHAR(50) NULL DEFAULT NULL,
-  `LAST_NAME` VARCHAR(50) NULL DEFAULT NULL,
-  `PHONE` VARCHAR(25) NULL DEFAULT NULL,
-  `FAX` VARCHAR(25) NULL DEFAULT NULL,
-  `CELLULAR` VARCHAR(25) NULL DEFAULT NULL,
-  `EMAIL` VARCHAR(50) NULL DEFAULT NULL,
-  `ADDRESS_ID` DECIMAL(11,0) NULL DEFAULT NULL,
-  `ALERT_METHOD_CD` VARCHAR(10) NULL DEFAULT NULL,
-  `HRID` VARCHAR(20) NULL DEFAULT NULL,
-  `ORG_USER_ID` VARCHAR(20) NULL DEFAULT NULL,
-  `ORG_CODE` VARCHAR(30) NULL DEFAULT NULL,
-  `LOGIN_ID` VARCHAR(25) NULL DEFAULT NULL,
-  `LOGIN_PWD` VARCHAR(25) NULL DEFAULT NULL,
-  `LAST_LOGIN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
-  `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
-  `CREATED_ID` INT(11) NULL DEFAULT NULL,
-  `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `MODIFIED_ID` INT(11) NULL DEFAULT NULL,
-  `MODIFIED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `IS_INTERNAL_YN` CHAR(1) NOT NULL DEFAULT 'N',
-  `ADDRESS_LINE_1` VARCHAR(100) NULL DEFAULT NULL,
-  `ADDRESS_LINE_2` VARCHAR(100) NULL DEFAULT NULL,
-  `CITY` VARCHAR(50) NULL DEFAULT NULL,
-  `STATE_CD` VARCHAR(3) NULL DEFAULT NULL,
-  `ZIP_CODE` VARCHAR(11) NULL DEFAULT NULL,
-  `COUNTRY_CD` VARCHAR(3) NULL DEFAULT NULL,
-  `LOCATION_CLLI` VARCHAR(8) NULL DEFAULT NULL,
-  `ORG_MANAGER_USERID` VARCHAR(20) NULL DEFAULT NULL,
-  `COMPANY` VARCHAR(100) NULL DEFAULT NULL,
-  `DEPARTMENT_NAME` VARCHAR(100) NULL DEFAULT NULL,
-  `JOB_TITLE` VARCHAR(100) NULL DEFAULT NULL,
-  `TIMEZONE` INT(11) NULL DEFAULT NULL,
-  `DEPARTMENT` VARCHAR(25) NULL DEFAULT NULL,
-  `BUSINESS_UNIT` VARCHAR(25) NULL DEFAULT NULL,
-  `BUSINESS_UNIT_NAME` VARCHAR(100) NULL DEFAULT NULL,
-  `COST_CENTER` VARCHAR(25) NULL DEFAULT NULL,
-  `FIN_LOC_CODE` VARCHAR(10) NULL DEFAULT NULL,
-  `SILO_STATUS` VARCHAR(10) NULL DEFAULT NULL,
-  PRIMARY KEY (`USER_ID`),
-  UNIQUE INDEX `FN_USER_HRID` (`HRID` ASC),
-  UNIQUE INDEX `FN_USER_LOGIN_ID` (`LOGIN_ID` ASC),
-  INDEX `FN_USER_ADDRESS_ID` (`ADDRESS_ID` ASC),
-  INDEX `FN_USER_ALERT_METHOD_CD` (`ALERT_METHOD_CD` ASC),
-  INDEX `FN_USER_ORG_ID` (`ORG_ID` ASC),
-  INDEX `FK_FN_USER_REF_197_FN_USER` (`MANAGER_ID` ASC),
-  INDEX `FK_FN_USER_REF_198_FN_USER` (`CREATED_ID` ASC),
-  INDEX `FK_FN_USER_REF_199_FN_USER` (`MODIFIED_ID` ASC),
-  INDEX `FK_TIMEZONE` (`TIMEZONE` ASC),
-  CONSTRAINT `FK_FN_USER_REF_110_FN_ORG`
-    FOREIGN KEY (`ORG_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_org` (`ORG_ID`),
-  CONSTRAINT `FK_FN_USER_REF_123_FN_LU_AL`
-    FOREIGN KEY (`ALERT_METHOD_CD`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_lu_alert_method` (`ALERT_METHOD_CD`),
-  CONSTRAINT `FK_FN_USER_REF_197_FN_USER`
-    FOREIGN KEY (`MANAGER_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`),
-  CONSTRAINT `FK_FN_USER_REF_198_FN_USER`
-    FOREIGN KEY (`CREATED_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`),
-  CONSTRAINT `FK_FN_USER_REF_199_FN_USER`
-    FOREIGN KEY (`MODIFIED_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`),
-  CONSTRAINT `FK_TIMEZONE`
-    FOREIGN KEY (`TIMEZONE`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_lu_timezone` (`TIMEZONE_ID`))
-ENGINE = InnoDB
-AUTO_INCREMENT = 3
-DEFAULT CHARACTER SET = utf8;
-
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_user_pseudo_role
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_user_pseudo_role` (
-  `PSEUDO_ROLE_ID` INT(11) NOT NULL,
-  `USER_ID` INT(11) NOT NULL,
-  PRIMARY KEY (`PSEUDO_ROLE_ID`, `USER_ID`),
-  INDEX `FK_PSEUDO_ROLE_USER_ID` (`USER_ID` ASC),
-  CONSTRAINT `FK_PSEUDO_ROLE_PSEUDO_ROLE_ID`
-    FOREIGN KEY (`PSEUDO_ROLE_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`),
-  CONSTRAINT `FK_PSEUDO_ROLE_USER_ID`
-    FOREIGN KEY (`USER_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_user_role
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_user_role` (
-  `USER_ID` INT(10) NOT NULL,
-  `ROLE_ID` INT(10) NOT NULL,
-  `PRIORITY` DECIMAL(4,0) NULL DEFAULT NULL,
-  `APP_ID` INT(11) NOT NULL DEFAULT '1',
-  PRIMARY KEY (`USER_ID`, `ROLE_ID`, `APP_ID`),
-  INDEX `FN_USER_ROLE_ROLE_ID` (`ROLE_ID` ASC),
-  INDEX `FN_USER_ROLE_USER_ID` (`USER_ID` ASC),
-  INDEX `FK_FN_USER__REF_178_FN_APP_idx` (`APP_ID` ASC),
-  CONSTRAINT `FK_FN_USER__REF_172_FN_USER`
-    FOREIGN KEY (`USER_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`),
-  CONSTRAINT `FK_FN_USER__REF_175_FN_ROLE`
-    FOREIGN KEY (`ROLE_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`),
-  CONSTRAINT `FK_FN_USER__REF_178_FN_APP`
-    FOREIGN KEY (`APP_ID`)
-    REFERENCES `vid_openecomp_epsdk`.`fn_app` (`APP_ID`))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_workflow
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_workflow` (
-  `id` MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
-  `name` VARCHAR(20) NOT NULL,
-  `description` VARCHAR(500) NULL DEFAULT NULL,
-  `run_link` VARCHAR(300) NULL DEFAULT NULL,
-  `suspend_link` VARCHAR(300) NULL DEFAULT NULL,
-  `modified_link` VARCHAR(300) NULL DEFAULT NULL,
-  `active_yn` VARCHAR(300) NULL DEFAULT NULL,
-  `created` VARCHAR(300) NULL DEFAULT NULL,
-  `created_by` INT(11) NULL DEFAULT NULL,
-  `modified` VARCHAR(300) NULL DEFAULT NULL,
-  `modified_by` INT(11) NULL DEFAULT NULL,
-  `workflow_key` VARCHAR(50) NULL DEFAULT NULL,
-  PRIMARY KEY (`id`),
-  UNIQUE INDEX `name` (`name` ASC))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.fn_xmltype
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_xmltype` (
-  `ID` DECIMAL(10,0) NOT NULL,
-  `XML_DOCUMENT` TEXT NULL DEFAULT NULL,
-  UNIQUE INDEX `FN_XMLTYPE_ID` (`ID` ASC))
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.schema_info
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`schema_info` (
-  `SCHEMA_ID` VARCHAR(25) NOT NULL,
-  `SCHEMA_DESC` VARCHAR(75) NOT NULL,
-  `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL,
-  `CONNECTION_URL` VARCHAR(200) NOT NULL,
-  `USER_NAME` VARCHAR(45) NOT NULL,
-  `PASSWORD` VARCHAR(45) NULL DEFAULT NULL,
-  `DRIVER_CLASS` VARCHAR(100) NOT NULL,
-  `MIN_POOL_SIZE` INT(11) NOT NULL,
-  `MAX_POOL_SIZE` INT(11) NOT NULL,
-  `IDLE_CONNECTION_TEST_PERIOD` INT(11) NOT NULL)
-ENGINE = InnoDB
-DEFAULT CHARACTER SET = utf8;
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.vid_vnf
--- ----------------------------------------------------------------------------
-
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`vid_vnf` (
-  `VNF_DB_ID` int(11) NOT NULL AUTO_INCREMENT,
-  `VNF_APP_UUID` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
-  `VNF_APP_INVARIANT_UUID` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
-  `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  PRIMARY KEY (`VNF_DB_ID`),
-  UNIQUE KEY `vid_vnf_VNF_ID_uindex` (`VNF_APP_UUID`,`VNF_APP_INVARIANT_UUID`)
-) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.vid_workflow
--- ----------------------------------------------------------------------------
-
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`vid_workflow` (
-  `WORKFLOW_DB_ID` int(11) NOT NULL AUTO_INCREMENT,
-  `WORKFLOW_APP_NAME` varchar(50) COLLATE utf8_bin NOT NULL,
-  `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  PRIMARY KEY (`WORKFLOW_DB_ID`),
-  UNIQUE KEY `vid_workflow_workflow_uuid_uindex` (`WORKFLOW_APP_NAME`),
-  UNIQUE KEY `vid_workflow_WORKFLOW_ID_uindex` (`WORKFLOW_DB_ID`)
-) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.vid_vnf_workflow
--- ----------------------------------------------------------------------------
-
-
-CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`vid_vnf_workflow` (
-  `VNF_DB_ID` int(11) NOT NULL,
-  `WORKFLOW_DB_ID` int(11) NOT NULL,
-  KEY `vid_vnf_workflow_vid_vnf_VND_ID_fk` (`VNF_DB_ID`),
-  KEY `vid_vnf_workflow_vid_workflow_WORKFLOW_ID_fk` (`WORKFLOW_DB_ID`),
-  CONSTRAINT `vid_vnf_workflow_vid_vnf_VND_ID_fk` FOREIGN KEY (`VNF_DB_ID`) REFERENCES `vid_vnf` (`VNF_DB_ID`),
-  CONSTRAINT `vid_vnf_workflow_vid_workflow_WORKFLOW_ID_fk` FOREIGN KEY (`WORKFLOW_DB_ID`) REFERENCES `vid_openecomp_epsdk`.`vid_workflow` (`WORKFLOW_DB_ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-
-
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.vid_category_parameter
--- ----------------------------------------------------------------------------
-
-
-CREATE TABLE IF NOT EXISTS `vid_category_parameter` (
-	`CATEGORY_ID` INT(11) NOT NULL AUTO_INCREMENT,
-	`NAME` VARCHAR(255) NULL COLLATE 'utf8_bin',
-	`ID_SUPPORTED` TINYINT(1) NOT NULL DEFAULT '0',
-  `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
-	PRIMARY KEY (`CATEGORY_ID`)
-) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=5;
-
--------------------------------------------------------------------------------
-
-ALTER TABLE `vid_category_parameter`
-	ADD COLUMN if not exists `FAMILY` ENUM('PARAMETER_STANDARDIZATION','TENANT_ISOLATION') NOT NULL DEFAULT 'PARAMETER_STANDARDIZATION' AFTER `ID_SUPPORTED`;
--- ----------------------------------------------------------------------------
--- Table vid_openecomp_epsdk.vid_category_parameter
--- ----------------------------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `vid_category_parameter_option` (
-  `CATEGORY_OPT_DB_ID` INT(11) NOT NULL AUTO_INCREMENT,
-  `CATEGORY_OPT_APP_ID` VARCHAR(50) NOT NULL COLLATE 'utf8_bin',
-  `NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
-  `CATEGORY_ID` INT(11) NOT NULL DEFAULT '0',
-  `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  PRIMARY KEY (`CATEGORY_OPT_DB_ID`),
-  UNIQUE INDEX `APP_ID_CATEGORY_UNIQUE` (`CATEGORY_ID`, `CATEGORY_OPT_APP_ID`),
-  UNIQUE INDEX `NAME_CATEGORY_UNIQUE` (`CATEGORY_ID`, `NAME`),
-  CONSTRAINT `FK_OWNING_ENTITY_OPTIONS_TO_OE` FOREIGN KEY (`CATEGORY_ID`) REFERENCES `vid_openecomp_epsdk`.`vid_category_parameter` (`CATEGORY_ID`)
-) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=25;
-
-CREATE TABLE IF NOT EXISTS `vid_job` (
-  `JOB_ID`        BINARY(16)   NOT NULL PRIMARY KEY,
-  `CREATED_DATE`  TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `MODIFIED_DATE` TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
-  `JOB_STATUS`    VARCHAR(50)  NULL COLLATE 'utf8_bin',
-  `JOB_TYPE`      VARCHAR(50)  NULL COLLATE 'utf8_bin',
-  `JOB_DATA`      MEDIUMTEXT   NULL COLLATE 'utf8_bin',
-  `PARENT_JOB_ID` BINARY(16)   NULL,
-  `TAKEN_BY`      VARCHAR(100) NULL COLLATE 'utf8_bin',
-  CONSTRAINT `FK_OWNING_VID_JOB_PARENT` FOREIGN KEY (`PARENT_JOB_ID`) REFERENCES `vid_openecomp_epsdk`.`vid_job` (`JOB_ID`)
-) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-
-ALTER TABLE `vid_job`
-  ADD COLUMN if NOT EXISTS `TAKEN_BY` VARCHAR (100) COLLATE 'utf8_bin';
--- ----------------------------------------------------------------------------
--- View vid_openecomp_epsdk.v_url_access
--- ----------------------------------------------------------------------------
-CREATE OR REPLACE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW `v_url_access` AS select distinct `m`.`ACTION` AS `URL`,`m`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_menu` `m` where (`m`.`ACTION` is not null) union select distinct `t`.`ACTION` AS `URL`,`t`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_tab` `t` where (`t`.`ACTION` is not null) union select `r`.`RESTRICTED_URL` AS `URL`,`r`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_restricted_url` `r`;
+/*-
+ * ============LICENSE_START=======================================================
+ * VID
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+-- ----------------------------------------------------------------------------
+-- MySQL Workbench Migration
+-- Migrated Schemata: vid_openecomp_epsdk
+-- Source Schemata: ecomp_sd
+-- Created: Sun Nov 13 08:58:53 2016
+-- Workbench Version: 6.3.6
+-- ----------------------------------------------------------------------------
+
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------------------------------------------------------
+-- Schema vid_openecomp_epsdk
+-- ----------------------------------------------------------------------------
+CREATE SCHEMA IF NOT EXISTS `vid_openecomp_epsdk` ;
+
+USE vid_openecomp_epsdk;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.schema_info
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`schema_info` (
+  `SCHEMA_ID` VARCHAR(25) NOT NULL,
+  `SCHEMA_DESC` VARCHAR(75) NOT NULL,
+  `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL,
+  `CONNECTION_URL` VARCHAR(200) NOT NULL,
+  `USER_NAME` VARCHAR(45) NOT NULL,
+  `PASSWORD` VARCHAR(45) NULL DEFAULT NULL,
+  `DRIVER_CLASS` VARCHAR(100) NOT NULL,
+  `MIN_POOL_SIZE` INT(11) NOT NULL,
+  `MAX_POOL_SIZE` INT(11) NOT NULL,
+  `IDLE_CONNECTION_TEST_PERIOD` INT(11) NOT NULL)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_favorite_reports
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_favorite_reports` (
+  `USER_ID` INT(11) NOT NULL,
+  `REP_ID` INT(11) NOT NULL,
+  PRIMARY KEY (`USER_ID`, `REP_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_filehist_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_filehist_log` (
+  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+  `URL` VARCHAR(4000) NULL DEFAULT NULL,
+  `NOTES` VARCHAR(3500) NULL DEFAULT NULL,
+  `RUN_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_folder
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_folder` (
+  `FOLDER_ID` INT(11) NOT NULL,
+  `FOLDER_NAME` VARCHAR(50) NOT NULL,
+  `DESCR` VARCHAR(500) NULL DEFAULT NULL,
+  `CREATE_ID` INT(11) NOT NULL,
+  `CREATE_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `PARENT_FOLDER_ID` INT(11) NULL DEFAULT NULL,
+  `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+  PRIMARY KEY (`FOLDER_ID`),
+  INDEX `FK_PARENT_KEY_CR_FOLDER` (`PARENT_FOLDER_ID` ASC),
+  CONSTRAINT `FK_PARENT_KEY_CR_FOLDER`
+    FOREIGN KEY (`PARENT_FOLDER_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_folder` (`FOLDER_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_folder_access
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_folder_access` (
+  `FOLDER_ACCESS_ID` DECIMAL(11,0) NOT NULL,
+  `FOLDER_ID` DECIMAL(11,0) NOT NULL,
+  `ORDER_NO` DECIMAL(11,0) NOT NULL,
+  `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `READ_ONLY_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+  PRIMARY KEY (`FOLDER_ACCESS_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_hist_user_map
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_hist_user_map` (
+  `HIST_ID` INT(11) NOT NULL,
+  `USER_ID` INT(11) NOT NULL,
+  PRIMARY KEY (`HIST_ID`, `USER_ID`),
+  INDEX `SYS_C0014617` (`USER_ID` ASC),
+  CONSTRAINT `SYS_C0014616`
+    FOREIGN KEY (`HIST_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_report_file_history` (`HIST_ID`),
+  CONSTRAINT `SYS_C0014617`
+    FOREIGN KEY (`USER_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_lu_file_type
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_lu_file_type` (
+  `LOOKUP_ID` DECIMAL(2,0) NOT NULL,
+  `LOOKUP_DESCR` VARCHAR(255) NOT NULL,
+  `ACTIVE_YN` CHAR(1) NULL DEFAULT 'Y',
+  `ERROR_CODE` DECIMAL(11,0) NULL DEFAULT NULL,
+  PRIMARY KEY (`LOOKUP_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_raptor_action_img
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_raptor_action_img` (
+  `IMAGE_ID` VARCHAR(100) NOT NULL,
+  `IMAGE_LOC` VARCHAR(400) NULL DEFAULT NULL,
+  PRIMARY KEY (`IMAGE_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_raptor_pdf_img
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_raptor_pdf_img` (
+  `IMAGE_ID` VARCHAR(100) NOT NULL,
+  `IMAGE_LOC` VARCHAR(400) NULL DEFAULT NULL,
+  PRIMARY KEY (`IMAGE_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_remote_schema_info
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_remote_schema_info` (
+  `SCHEMA_PREFIX` VARCHAR(5) NOT NULL,
+  `SCHEMA_DESC` VARCHAR(75) NOT NULL,
+  `DATASOURCE_TYPE` VARCHAR(100) NULL DEFAULT NULL,
+  PRIMARY KEY (`SCHEMA_PREFIX`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report` (
+  `REP_ID` DECIMAL(11,0) NOT NULL,
+  `TITLE` VARCHAR(100) NOT NULL,
+  `DESCR` VARCHAR(255) NULL DEFAULT NULL,
+  `PUBLIC_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+  `REPORT_XML` TEXT NULL DEFAULT NULL,
+  `CREATE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `CREATE_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MAINT_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `MAINT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MENU_ID` VARCHAR(500) NULL DEFAULT NULL,
+  `MENU_APPROVED_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+  `OWNER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `FOLDER_ID` INT(11) NULL DEFAULT '0',
+  `DASHBOARD_TYPE_YN` VARCHAR(1) NULL DEFAULT 'N',
+  `DASHBOARD_YN` VARCHAR(1) NULL DEFAULT 'N',
+  PRIMARY KEY (`REP_ID`),
+  INDEX `CR_REPORT_CREATE_IDPUBLIC_YNTITLE` (`CREATE_ID` ASC, `PUBLIC_YN` ASC, `TITLE` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report_access
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_access` (
+  `REP_ID` DECIMAL(11,0) NOT NULL,
+  `ORDER_NO` DECIMAL(11,0) NOT NULL,
+  `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `READ_ONLY_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+  PRIMARY KEY (`REP_ID`, `ORDER_NO`),
+  CONSTRAINT `FK_CR_REPOR_REF_8550_CR_REPOR`
+    FOREIGN KEY (`REP_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report_dwnld_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_dwnld_log` (
+  `USER_ID` DECIMAL(11,0) NOT NULL,
+  `REP_ID` INT(11) NOT NULL,
+  `FILE_NAME` VARCHAR(100) NOT NULL,
+  `DWNLD_START_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `RECORD_READY_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `FILTER_PARAMS` VARCHAR(2000) NULL DEFAULT NULL)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report_email_sent_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_email_sent_log` (
+  `LOG_ID` INT(11) NOT NULL,
+  `SCHEDULE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `GEN_KEY` VARCHAR(25) NOT NULL,
+  `REP_ID` DECIMAL(11,0) NOT NULL,
+  `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `SENT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `ACCESS_FLAG` VARCHAR(1) NOT NULL DEFAULT 'Y',
+  `TOUCH_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`LOG_ID`),
+  INDEX `FK_CR_REPORT_REP_ID` (`REP_ID` ASC),
+  CONSTRAINT `FK_CR_REPORT_REP_ID`
+    FOREIGN KEY (`REP_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report_file_history
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_file_history` (
+  `HIST_ID` INT(11) NOT NULL,
+  `SCHED_USER_ID` DECIMAL(11,0) NOT NULL,
+  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+  `USER_ID` DECIMAL(11,0) NOT NULL,
+  `REP_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `RUN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `RECURRENCE` VARCHAR(50) NULL DEFAULT NULL,
+  `FILE_TYPE_ID` DECIMAL(2,0) NULL DEFAULT NULL,
+  `FILE_NAME` VARCHAR(80) NULL DEFAULT NULL,
+  `FILE_BLOB` BLOB NULL DEFAULT NULL,
+  `FILE_SIZE` DECIMAL(11,0) NULL DEFAULT NULL,
+  `RAPTOR_URL` VARCHAR(4000) NULL DEFAULT NULL,
+  `ERROR_YN` CHAR(1) NULL DEFAULT 'N',
+  `ERROR_CODE` DECIMAL(11,0) NULL DEFAULT NULL,
+  `DELETED_YN` CHAR(1) NULL DEFAULT 'N',
+  `DELETED_BY` DECIMAL(38,0) NULL DEFAULT NULL,
+  PRIMARY KEY (`HIST_ID`),
+  INDEX `SYS_C0014614` (`FILE_TYPE_ID` ASC),
+  INDEX `SYS_C0014615` (`REP_ID` ASC),
+  CONSTRAINT `SYS_C0014614`
+    FOREIGN KEY (`FILE_TYPE_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_lu_file_type` (`LOOKUP_ID`),
+  CONSTRAINT `SYS_C0014615`
+    FOREIGN KEY (`REP_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_log` (
+  `REP_ID` DECIMAL(11,0) NOT NULL,
+  `LOG_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `USER_ID` DECIMAL(11,0) NOT NULL,
+  `ACTION` VARCHAR(2000) NOT NULL,
+  `ACTION_VALUE` VARCHAR(50) NULL DEFAULT NULL,
+  `FORM_FIELDS` VARCHAR(4000) NULL DEFAULT NULL,
+  INDEX `FK_CR_REPOR_REF_17645_CR_REPOR` (`REP_ID` ASC),
+  CONSTRAINT `FK_CR_REPOR_REF_17645_CR_REPOR`
+    FOREIGN KEY (`REP_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report_schedule
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_schedule` (
+  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+  `SCHED_USER_ID` DECIMAL(11,0) NOT NULL,
+  `REP_ID` DECIMAL(11,0) NOT NULL,
+  `ENABLED_YN` VARCHAR(1) NOT NULL,
+  `START_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `END_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `RUN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `RECURRENCE` VARCHAR(50) NULL DEFAULT NULL,
+  `CONDITIONAL_YN` VARCHAR(1) NOT NULL,
+  `CONDITION_SQL` VARCHAR(4000) NULL DEFAULT NULL,
+  `NOTIFY_TYPE` INT(11) NULL DEFAULT '0',
+  `MAX_ROW` INT(11) NULL DEFAULT '1000',
+  `INITIAL_FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
+  `PROCESSED_FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
+  `FORMFIELDS` VARCHAR(3500) NULL DEFAULT NULL,
+  `CONDITION_LARGE_SQL` TEXT NULL DEFAULT NULL,
+  `ENCRYPT_YN` CHAR(1) NULL DEFAULT 'N',
+  `ATTACHMENT_YN` CHAR(1) NULL DEFAULT 'Y',
+  PRIMARY KEY (`SCHEDULE_ID`),
+  INDEX `FK_CR_REPOR_REF_14707_CR_REPOR` (`REP_ID` ASC),
+  CONSTRAINT `FK_CR_REPOR_REF_14707_CR_REPOR`
+    FOREIGN KEY (`REP_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_report` (`REP_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report_schedule_users
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_schedule_users` (
+  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+  `REP_ID` DECIMAL(11,0) NOT NULL,
+  `USER_ID` DECIMAL(11,0) NOT NULL,
+  `ROLE_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `ORDER_NO` DECIMAL(11,0) NOT NULL,
+  PRIMARY KEY (`SCHEDULE_ID`, `REP_ID`, `USER_ID`, `ORDER_NO`),
+  CONSTRAINT `FK_CR_REPOR_REF_14716_CR_REPOR`
+    FOREIGN KEY (`SCHEDULE_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_report_schedule` (`SCHEDULE_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_report_template_map
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_report_template_map` (
+  `REPORT_ID` INT(11) NOT NULL,
+  `TEMPLATE_FILE` VARCHAR(200) NULL DEFAULT NULL,
+  PRIMARY KEY (`REPORT_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_schedule_activity_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_schedule_activity_log` (
+  `SCHEDULE_ID` DECIMAL(11,0) NOT NULL,
+  `URL` VARCHAR(4000) NULL DEFAULT NULL,
+  `NOTES` VARCHAR(2000) NULL DEFAULT NULL,
+  `RUN_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_table_join
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_table_join` (
+  `SRC_TABLE_NAME` VARCHAR(30) NOT NULL,
+  `DEST_TABLE_NAME` VARCHAR(30) NOT NULL,
+  `JOIN_EXPR` VARCHAR(500) NOT NULL,
+  INDEX `CR_TABLE_JOIN_DEST_TABLE_NAME` (`DEST_TABLE_NAME` ASC),
+  INDEX `CR_TABLE_JOIN_SRC_TABLE_NAME` (`SRC_TABLE_NAME` ASC),
+  CONSTRAINT `FK_CR_TABLE_REF_311_CR_TAB`
+    FOREIGN KEY (`SRC_TABLE_NAME`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_table_source` (`TABLE_NAME`),
+  CONSTRAINT `FK_CR_TABLE_REF_315_CR_TAB`
+    FOREIGN KEY (`DEST_TABLE_NAME`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_table_source` (`TABLE_NAME`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_table_role
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_table_role` (
+  `TABLE_NAME` VARCHAR(30) NOT NULL,
+  `ROLE_ID` DECIMAL(11,0) NOT NULL,
+  PRIMARY KEY (`TABLE_NAME`, `ROLE_ID`),
+  CONSTRAINT `FK_CR_TABLE_REF_32384_CR_TABLE`
+    FOREIGN KEY (`TABLE_NAME`)
+    REFERENCES `vid_openecomp_epsdk`.`cr_table_source` (`TABLE_NAME`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.cr_table_source
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`cr_table_source` (
+  `TABLE_NAME` VARCHAR(30) NOT NULL,
+  `DISPLAY_NAME` VARCHAR(30) NOT NULL,
+  `PK_FIELDS` VARCHAR(200) NULL DEFAULT NULL,
+  `WEB_VIEW_ACTION` VARCHAR(50) NULL DEFAULT NULL,
+  `LARGE_DATA_SOURCE_YN` VARCHAR(1) NOT NULL DEFAULT 'N',
+  `FILTER_SQL` VARCHAR(4000) NULL DEFAULT NULL,
+  `SOURCE_DB` VARCHAR(50) NULL DEFAULT NULL,
+  PRIMARY KEY (`TABLE_NAME`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_app
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_app` (
+  `APP_ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `APP_NAME` VARCHAR(100) NOT NULL DEFAULT '?',
+  `APP_IMAGE_URL` VARCHAR(256) NULL DEFAULT NULL,
+  `APP_DESCRIPTION` VARCHAR(512) NULL DEFAULT NULL,
+  `APP_NOTES` VARCHAR(4096) NULL DEFAULT NULL,
+  `APP_URL` VARCHAR(256) NULL DEFAULT NULL,
+  `APP_ALTERNATE_URL` VARCHAR(256) NULL DEFAULT NULL,
+  `APP_REST_ENDPOINT` VARCHAR(2000) NULL DEFAULT NULL,
+  `ML_APP_NAME` VARCHAR(50) NOT NULL DEFAULT '?',
+  `ML_APP_ADMIN_ID` VARCHAR(7) NOT NULL DEFAULT '?',
+  `MOTS_ID` INT(11) NULL DEFAULT NULL,
+  `APP_PASSWORD` VARCHAR(256) NOT NULL DEFAULT '?',
+  `OPEN` CHAR(1) NULL DEFAULT 'N',
+  `ENABLED` CHAR(1) NULL DEFAULT 'Y',
+  `THUMBNAIL` MEDIUMBLOB NULL DEFAULT NULL,
+  `APP_USERNAME` VARCHAR(50) NULL DEFAULT NULL,
+  `UEB_KEY` VARCHAR(256) NULL DEFAULT NULL,
+  `UEB_SECRET` VARCHAR(256) NULL DEFAULT NULL,
+  `UEB_TOPIC_NAME` VARCHAR(256) NULL DEFAULT NULL,
+  PRIMARY KEY (`APP_ID`))
+ENGINE = InnoDB
+AUTO_INCREMENT = 2
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_app_mme_cpu
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_app_mme_cpu` (
+  `MME` VARCHAR(200) NULL DEFAULT NULL,
+  `YEARMONTH` INT(11) NULL DEFAULT NULL,
+  `SCTP_CPU` INT(11) NULL DEFAULT NULL,
+  `AP_CPU` INT(11) NULL DEFAULT NULL,
+  `DP_CPU` INT(11) NULL DEFAULT NULL,
+  `ROUTER_CPU` INT(11) NULL DEFAULT NULL,
+  `PEB_CPU` INT(11) NULL DEFAULT NULL,
+  `SAU` INT(11) NULL DEFAULT NULL)
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_audit_action
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_audit_action` (
+  `AUDIT_ACTION_ID` INT(11) NOT NULL,
+  `CLASS_NAME` VARCHAR(500) NOT NULL,
+  `METHOD_NAME` VARCHAR(50) NOT NULL,
+  `AUDIT_ACTION_CD` VARCHAR(20) NOT NULL,
+  `AUDIT_ACTION_DESC` VARCHAR(200) NULL DEFAULT NULL,
+  `ACTIVE_YN` VARCHAR(1) NULL DEFAULT NULL,
+  PRIMARY KEY (`AUDIT_ACTION_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_audit_action_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_audit_action_log` (
+  `AUDIT_LOG_ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `AUDIT_ACTION_CD` VARCHAR(200) NULL DEFAULT NULL,
+  `ACTION_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `USER_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `CLASS_NAME` VARCHAR(100) NULL DEFAULT NULL,
+  `METHOD_NAME` VARCHAR(50) NULL DEFAULT NULL,
+  `SUCCESS_MSG` VARCHAR(20) NULL DEFAULT NULL,
+  `ERROR_MSG` VARCHAR(500) NULL DEFAULT NULL,
+  PRIMARY KEY (`AUDIT_LOG_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_audit_log
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_audit_log` (
+  `LOG_ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `USER_ID` INT(11) NOT NULL,
+  `ACTIVITY_CD` VARCHAR(50) NOT NULL,
+  `AUDIT_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `COMMENTS` VARCHAR(1000) NULL DEFAULT NULL,
+  `AFFECTED_RECORD_ID_BK` VARCHAR(500) NULL DEFAULT NULL,
+  `AFFECTED_RECORD_ID` VARCHAR(4000) NULL DEFAULT NULL,
+  PRIMARY KEY (`LOG_ID`),
+  INDEX `FN_AUDIT_LOG_ACTIVITY_CD` (`ACTIVITY_CD` ASC),
+  INDEX `FN_AUDIT_LOG_USER_ID` (`USER_ID` ASC),
+  CONSTRAINT `FK_FN_AUDIT_REF_205_FN_LU_AC`
+    FOREIGN KEY (`ACTIVITY_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_lu_activity` (`ACTIVITY_CD`),
+  CONSTRAINT `FK_FN_AUDIT_REF_209_FN_USER`
+    FOREIGN KEY (`USER_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_broadcast_message
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_broadcast_message` (
+  `MESSAGE_ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `MESSAGE_TEXT` VARCHAR(1000) NOT NULL,
+  `MESSAGE_LOCATION_ID` DECIMAL(11,0) NOT NULL,
+  `BROADCAST_START_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `BROADCAST_END_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `ACTIVE_YN` CHAR(1) NOT NULL DEFAULT 'Y',
+  `SORT_ORDER` DECIMAL(4,0) NOT NULL,
+  `BROADCAST_SITE_CD` VARCHAR(50) NULL DEFAULT NULL,
+  PRIMARY KEY (`MESSAGE_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_chat_logs
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_chat_logs` (
+  `CHAT_LOG_ID` INT(11) NOT NULL,
+  `CHAT_ROOM_ID` INT(11) NULL DEFAULT NULL,
+  `USER_ID` INT(11) NULL DEFAULT NULL,
+  `MESSAGE` VARCHAR(1000) NULL DEFAULT NULL,
+  `MESSAGE_DATE_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  PRIMARY KEY (`CHAT_LOG_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_chat_room
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_chat_room` (
+  `CHAT_ROOM_ID` INT(11) NOT NULL,
+  `NAME` VARCHAR(50) NOT NULL,
+  `DESCRIPTION` VARCHAR(500) NULL DEFAULT NULL,
+  `OWNER_ID` INT(11) NULL DEFAULT NULL,
+  `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `UPDATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`CHAT_ROOM_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_chat_users
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_chat_users` (
+  `CHAT_ROOM_ID` INT(11) NULL DEFAULT NULL,
+  `USER_ID` INT(11) NULL DEFAULT NULL,
+  `LAST_ACTIVITY_DATE_TIME` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `CHAT_STATUS` VARCHAR(20) NULL DEFAULT NULL,
+  `ID` INT(11) NOT NULL,
+  PRIMARY KEY (`ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_datasource
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_datasource` (
+  `ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `NAME` VARCHAR(50) NULL DEFAULT NULL,
+  `DRIVER_NAME` VARCHAR(256) NULL DEFAULT NULL,
+  `SERVER` VARCHAR(256) NULL DEFAULT NULL,
+  `PORT` INT(11) NULL DEFAULT NULL,
+  `USER_NAME` VARCHAR(256) NULL DEFAULT NULL,
+  `PASSWORD` VARCHAR(256) NULL DEFAULT NULL,
+  `URL` VARCHAR(256) NULL DEFAULT NULL,
+  `MIN_POOL_SIZE` INT(11) NULL DEFAULT NULL,
+  `MAX_POOL_SIZE` INT(11) NULL DEFAULT NULL,
+  `ADAPTER_ID` INT(11) NULL DEFAULT NULL,
+  `DS_TYPE` VARCHAR(20) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID`))
+ENGINE = InnoDB
+AUTO_INCREMENT = 4
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_function
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_function` (
+  `FUNCTION_CD` VARCHAR(30) NOT NULL,
+  `FUNCTION_NAME` VARCHAR(50) NOT NULL,
+  `type` VARCHAR(20) NOT NULL,
+  `action` VARCHAR(20) NOT NULL,
+  PRIMARY KEY (`FUNCTION_CD`),
+  CONSTRAINT `function` UNIQUE (FUNCTION_CD,TYPE,ACTION))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+ALTER TABLE `vid_openecomp_epsdk`.`fn_function` MODIFY COLUMN type VARCHAR(50) NULL;
+ALTER TABLE `vid_openecomp_epsdk`.`fn_function` MODIFY COLUMN action VARCHAR(100) NULL;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_license
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license` (
+  `id` DECIMAL(11,0) NOT NULL,
+  `app_id` DECIMAL(11,0) NOT NULL,
+  `ip_address` VARCHAR(100) NOT NULL,
+  `quantum_version_id` DECIMAL(11,0) NOT NULL,
+  `created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `modified_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `created_id` DECIMAL(11,0) NULL DEFAULT NULL,
+  `modified_id` DECIMAL(11,0) NULL DEFAULT NULL,
+  `end_date` TIMESTAMP NOT NULL DEFAULT '2036-01-19 03:14:07',
+  PRIMARY KEY (`id`),
+  INDEX `fn_license_r02` (`quantum_version_id` ASC),
+  CONSTRAINT `fn_license_r02`
+    FOREIGN KEY (`quantum_version_id`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_license_version` (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_license_app
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license_app` (
+  `id` DECIMAL(11,0) NOT NULL,
+  `app_name` VARCHAR(100) NOT NULL,
+  `ctxt_name` VARCHAR(100) NULL DEFAULT NULL,
+  INDEX `fn_license_app_ID` (`id` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_license_contact
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license_contact` (
+  `id` INT(11) NOT NULL,
+  `license_id` INT(11) NULL DEFAULT NULL,
+  `sbcid` VARCHAR(20) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_license_history
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license_history` (
+  `license_id` DECIMAL(11,0) NULL DEFAULT NULL,
+  `app_id` DECIMAL(11,0) NULL DEFAULT NULL,
+  `ip_address` VARCHAR(100) NULL DEFAULT NULL,
+  `quantum_version_id` DECIMAL(11,0) NULL DEFAULT NULL,
+  `created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `modified_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `created_id` DECIMAL(11,0) NULL DEFAULT NULL,
+  `modified_id` DECIMAL(11,0) NULL DEFAULT NULL,
+  `id` DECIMAL(11,0) NOT NULL,
+  PRIMARY KEY (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_license_version
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_license_version` (
+  `id` DECIMAL(11,0) NOT NULL,
+  `quantum_version` VARCHAR(25) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_activity
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_activity` (
+  `ACTIVITY_CD` VARCHAR(50) NOT NULL,
+  `ACTIVITY` VARCHAR(50) NOT NULL,
+  PRIMARY KEY (`ACTIVITY_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_alert_method
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_alert_method` (
+  `ALERT_METHOD_CD` VARCHAR(10) NOT NULL,
+  `ALERT_METHOD` VARCHAR(50) NOT NULL,
+  PRIMARY KEY (`ALERT_METHOD_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_broadcast_site
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_broadcast_site` (
+  `BROADCAST_SITE_CD` VARCHAR(50) NOT NULL,
+  `BROADCAST_SITE_DESCR` VARCHAR(100) NULL DEFAULT NULL,
+  PRIMARY KEY (`BROADCAST_SITE_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_call_times
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_call_times` (
+  `CALL_TIME_ID` DECIMAL(10,0) NOT NULL,
+  `CALL_TIME_AMOUNT` DECIMAL(10,0) NOT NULL,
+  `CALL_TIME_DISPLAY` VARCHAR(50) NOT NULL,
+  PRIMARY KEY (`CALL_TIME_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_city
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_city` (
+  `CITY_CD` VARCHAR(2) NOT NULL,
+  `CITY` VARCHAR(100) NOT NULL,
+  `STATE_CD` VARCHAR(2) NOT NULL,
+  PRIMARY KEY (`CITY_CD`, `STATE_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_country
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_country` (
+  `COUNTRY_CD` VARCHAR(3) NOT NULL,
+  `COUNTRY` VARCHAR(100) NOT NULL,
+  `FULL_NAME` VARCHAR(100) NULL DEFAULT NULL,
+  `WEBPHONE_COUNTRY_LABEL` VARCHAR(30) NULL DEFAULT NULL,
+  PRIMARY KEY (`COUNTRY_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_menu_set
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_menu_set` (
+  `MENU_SET_CD` VARCHAR(10) NOT NULL,
+  `MENU_SET_NAME` VARCHAR(50) NOT NULL,
+  PRIMARY KEY (`MENU_SET_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_priority
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_priority` (
+  `PRIORITY_ID` DECIMAL(11,0) NOT NULL,
+  `PRIORITY` VARCHAR(50) NOT NULL,
+  `ACTIVE_YN` CHAR(1) NOT NULL,
+  `SORT_ORDER` DECIMAL(5,0) NULL DEFAULT NULL,
+  PRIMARY KEY (`PRIORITY_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_role_type
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_role_type` (
+  `ROLE_TYPE_ID` DECIMAL(11,0) NOT NULL,
+  `ROLE_TYPE` VARCHAR(50) NOT NULL,
+  PRIMARY KEY (`ROLE_TYPE_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_state
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_state` (
+  `STATE_CD` VARCHAR(2) NOT NULL,
+  `STATE` VARCHAR(100) NOT NULL,
+  PRIMARY KEY (`STATE_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_tab_set
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_tab_set` (
+  `TAB_SET_CD` VARCHAR(30) NOT NULL,
+  `TAB_SET_NAME` VARCHAR(50) NOT NULL,
+  PRIMARY KEY (`TAB_SET_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_lu_timezone
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_lu_timezone` (
+  `TIMEZONE_ID` INT(11) NOT NULL,
+  `TIMEZONE_NAME` VARCHAR(100) NOT NULL,
+  `TIMEZONE_VALUE` VARCHAR(100) NOT NULL,
+  PRIMARY KEY (`TIMEZONE_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_menu
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_menu` (
+  `MENU_ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `LABEL` VARCHAR(100) NULL DEFAULT NULL,
+  `PARENT_ID` INT(11) NULL DEFAULT NULL,
+  `SORT_ORDER` DECIMAL(4,0) NULL DEFAULT NULL,
+  `ACTION` VARCHAR(200) NULL DEFAULT NULL,
+  `FUNCTION_CD` VARCHAR(30) NULL DEFAULT NULL,
+  `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
+  `SERVLET` VARCHAR(50) NULL DEFAULT NULL,
+  `QUERY_STRING` VARCHAR(200) NULL DEFAULT NULL,
+  `EXTERNAL_URL` VARCHAR(200) NULL DEFAULT NULL,
+  `TARGET` VARCHAR(25) NULL DEFAULT NULL,
+  `MENU_SET_CD` VARCHAR(10) NULL DEFAULT 'APP',
+  `SEPARATOR_YN` CHAR(1) NULL DEFAULT 'N',
+  `IMAGE_SRC` VARCHAR(100) NULL DEFAULT NULL,
+  PRIMARY KEY (`MENU_ID`),
+  INDEX `FK_FN_MENU_REF_196_FN_MENU` (`PARENT_ID` ASC),
+  INDEX `FK_FN_MENU_MENU_SET_CD` (`MENU_SET_CD` ASC),
+  INDEX `FN_MENU_FUNCTION_CD` (`FUNCTION_CD` ASC),
+  CONSTRAINT `FK_FN_MENU_MENU_SET_CD`
+    FOREIGN KEY (`MENU_SET_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_lu_menu_set` (`MENU_SET_CD`),
+  CONSTRAINT `FK_FN_MENU_REF_196_FN_MENU`
+    FOREIGN KEY (`PARENT_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_menu` (`MENU_ID`),
+  CONSTRAINT `FK_FN_MENU_REF_223_FN_FUNCT`
+    FOREIGN KEY (`FUNCTION_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_function` (`FUNCTION_CD`))
+ENGINE = InnoDB
+AUTO_INCREMENT = 150029
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_org
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_org` (
+  `ORG_ID` INT(11) NOT NULL,
+  `ORG_NAME` VARCHAR(50) NOT NULL,
+  `ACCESS_CD` VARCHAR(10) NULL DEFAULT NULL,
+  PRIMARY KEY (`ORG_ID`),
+  INDEX `FN_ORG_ACCESS_CD` (`ACCESS_CD` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_blob_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_blob_triggers` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+  `BLOB_DATA` BLOB NULL DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+  INDEX `SCHED_NAME` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC),
+  CONSTRAINT `fn_qz_blob_triggers_ibfk_1`
+    FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_calendars
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_calendars` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `CALENDAR_NAME` VARCHAR(200) NOT NULL,
+  `CALENDAR` BLOB NOT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_cron_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_cron_triggers` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+  `CRON_EXPRESSION` VARCHAR(120) NOT NULL,
+  `TIME_ZONE_ID` VARCHAR(80) NULL DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+  CONSTRAINT `fn_qz_cron_triggers_ibfk_1`
+    FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_fired_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_fired_triggers` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `ENTRY_ID` VARCHAR(95) NOT NULL,
+  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+  `INSTANCE_NAME` VARCHAR(200) NOT NULL,
+  `FIRED_TIME` BIGINT(13) NOT NULL,
+  `SCHED_TIME` BIGINT(13) NOT NULL,
+  `PRIORITY` INT(11) NOT NULL,
+  `STATE` VARCHAR(16) NOT NULL,
+  `JOB_NAME` VARCHAR(200) NULL DEFAULT NULL,
+  `JOB_GROUP` VARCHAR(200) NULL DEFAULT NULL,
+  `IS_NONCONCURRENT` VARCHAR(1) NULL DEFAULT NULL,
+  `REQUESTS_RECOVERY` VARCHAR(1) NULL DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`),
+  INDEX `IDX_FN_QZ_FT_TRIG_INST_NAME` (`SCHED_NAME` ASC, `INSTANCE_NAME` ASC),
+  INDEX `IDX_FN_QZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME` ASC, `INSTANCE_NAME` ASC, `REQUESTS_RECOVERY` ASC),
+  INDEX `IDX_FN_QZ_FT_J_G` (`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC),
+  INDEX `IDX_FN_QZ_FT_JG` (`SCHED_NAME` ASC, `JOB_GROUP` ASC),
+  INDEX `IDX_FN_QZ_FT_T_G` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC),
+  INDEX `IDX_FN_QZ_FT_TG` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_job_details
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_job_details` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `JOB_NAME` VARCHAR(200) NOT NULL,
+  `JOB_GROUP` VARCHAR(200) NOT NULL,
+  `DESCRIPTION` VARCHAR(250) NULL DEFAULT NULL,
+  `JOB_CLASS_NAME` VARCHAR(250) NOT NULL,
+  `IS_DURABLE` VARCHAR(1) NOT NULL,
+  `IS_NONCONCURRENT` VARCHAR(1) NOT NULL,
+  `IS_UPDATE_DATA` VARCHAR(1) NOT NULL,
+  `REQUESTS_RECOVERY` VARCHAR(1) NOT NULL,
+  `JOB_DATA` BLOB NULL DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`),
+  INDEX `IDX_FN_QZ_J_REQ_RECOVERY` (`SCHED_NAME` ASC, `REQUESTS_RECOVERY` ASC),
+  INDEX `IDX_FN_QZ_J_GRP` (`SCHED_NAME` ASC, `JOB_GROUP` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_locks
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_locks` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `LOCK_NAME` VARCHAR(40) NOT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_paused_trigger_grps
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_paused_trigger_grps` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_scheduler_state
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_scheduler_state` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `INSTANCE_NAME` VARCHAR(200) NOT NULL,
+  `LAST_CHECKIN_TIME` BIGINT(13) NOT NULL,
+  `CHECKIN_INTERVAL` BIGINT(13) NOT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_simple_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_simple_triggers` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+  `REPEAT_COUNT` BIGINT(7) NOT NULL,
+  `REPEAT_INTERVAL` BIGINT(12) NOT NULL,
+  `TIMES_TRIGGERED` BIGINT(10) NOT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+  CONSTRAINT `fn_qz_simple_triggers_ibfk_1`
+    FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_simprop_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_simprop_triggers` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+  `STR_PROP_1` VARCHAR(512) NULL DEFAULT NULL,
+  `STR_PROP_2` VARCHAR(512) NULL DEFAULT NULL,
+  `STR_PROP_3` VARCHAR(512) NULL DEFAULT NULL,
+  `INT_PROP_1` INT(11) NULL DEFAULT NULL,
+  `INT_PROP_2` INT(11) NULL DEFAULT NULL,
+  `LONG_PROP_1` BIGINT(20) NULL DEFAULT NULL,
+  `LONG_PROP_2` BIGINT(20) NULL DEFAULT NULL,
+  `DEC_PROP_1` DECIMAL(13,4) NULL DEFAULT NULL,
+  `DEC_PROP_2` DECIMAL(13,4) NULL DEFAULT NULL,
+  `BOOL_PROP_1` VARCHAR(1) NULL DEFAULT NULL,
+  `BOOL_PROP_2` VARCHAR(1) NULL DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+  CONSTRAINT `fn_qz_simprop_triggers_ibfk_1`
+    FOREIGN KEY (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_qz_triggers` (`SCHED_NAME` , `TRIGGER_NAME` , `TRIGGER_GROUP`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_qz_triggers
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_qz_triggers` (
+  `SCHED_NAME` VARCHAR(120) NOT NULL,
+  `TRIGGER_NAME` VARCHAR(200) NOT NULL,
+  `TRIGGER_GROUP` VARCHAR(200) NOT NULL,
+  `JOB_NAME` VARCHAR(200) NOT NULL,
+  `JOB_GROUP` VARCHAR(200) NOT NULL,
+  `DESCRIPTION` VARCHAR(250) NULL DEFAULT NULL,
+  `NEXT_FIRE_TIME` BIGINT(13) NULL DEFAULT NULL,
+  `PREV_FIRE_TIME` BIGINT(13) NULL DEFAULT NULL,
+  `PRIORITY` INT(11) NULL DEFAULT NULL,
+  `TRIGGER_STATE` VARCHAR(16) NOT NULL,
+  `TRIGGER_TYPE` VARCHAR(8) NOT NULL,
+  `START_TIME` BIGINT(13) NOT NULL,
+  `END_TIME` BIGINT(13) NULL DEFAULT NULL,
+  `CALENDAR_NAME` VARCHAR(200) NULL DEFAULT NULL,
+  `MISFIRE_INSTR` SMALLINT(2) NULL DEFAULT NULL,
+  `JOB_DATA` BLOB NULL DEFAULT NULL,
+  PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`),
+  INDEX `IDX_FN_QZ_T_J` (`SCHED_NAME` ASC, `JOB_NAME` ASC, `JOB_GROUP` ASC),
+  INDEX `IDX_FN_QZ_T_JG` (`SCHED_NAME` ASC, `JOB_GROUP` ASC),
+  INDEX `IDX_FN_QZ_T_C` (`SCHED_NAME` ASC, `CALENDAR_NAME` ASC),
+  INDEX `IDX_FN_QZ_T_G` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC),
+  INDEX `IDX_FN_QZ_T_STATE` (`SCHED_NAME` ASC, `TRIGGER_STATE` ASC),
+  INDEX `IDX_FN_QZ_T_N_STATE` (`SCHED_NAME` ASC, `TRIGGER_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
+  INDEX `IDX_FN_QZ_T_N_G_STATE` (`SCHED_NAME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
+  INDEX `IDX_FN_QZ_T_NEXT_FIRE_TIME` (`SCHED_NAME` ASC, `NEXT_FIRE_TIME` ASC),
+  INDEX `IDX_FN_QZ_T_NFT_ST` (`SCHED_NAME` ASC, `TRIGGER_STATE` ASC, `NEXT_FIRE_TIME` ASC),
+  INDEX `IDX_FN_QZ_T_NFT_MISFIRE` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC),
+  INDEX `IDX_FN_QZ_T_NFT_ST_MISFIRE` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_STATE` ASC),
+  INDEX `IDX_FN_QZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME` ASC, `MISFIRE_INSTR` ASC, `NEXT_FIRE_TIME` ASC, `TRIGGER_GROUP` ASC, `TRIGGER_STATE` ASC),
+  CONSTRAINT `fn_qz_triggers_ibfk_1`
+    FOREIGN KEY (`SCHED_NAME` , `JOB_NAME` , `JOB_GROUP`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_qz_job_details` (`SCHED_NAME` , `JOB_NAME` , `JOB_GROUP`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_restricted_url
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_restricted_url` (
+  `RESTRICTED_URL` VARCHAR(250) NOT NULL,
+  `FUNCTION_CD` VARCHAR(30) NOT NULL,
+  PRIMARY KEY (`RESTRICTED_URL`, `FUNCTION_CD`),
+  INDEX `FK_RESTRICTED_URL_FUNCTION_CD` (`FUNCTION_CD` ASC),
+  CONSTRAINT `FK_RESTRICTED_URL_FUNCTION_CD`
+    FOREIGN KEY (`FUNCTION_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_function` (`FUNCTION_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_role
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_role` (
+  `ROLE_ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `ROLE_NAME` VARCHAR(255) NOT NULL,
+  `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
+  `PRIORITY` DECIMAL(4,0) NULL DEFAULT NULL,
+  PRIMARY KEY (`ROLE_ID`))
+ENGINE = InnoDB
+AUTO_INCREMENT = 17
+DEFAULT CHARACTER SET = utf8;
+
+ALTER TABLE `vid_openecomp_epsdk`.`fn_role` MODIFY `ROLE_NAME` VARCHAR (255);
+
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_role_composite
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_role_composite` (
+  `PARENT_ROLE_ID` INT(11) NOT NULL,
+  `CHILD_ROLE_ID` INT(11) NOT NULL,
+  PRIMARY KEY (`PARENT_ROLE_ID`, `CHILD_ROLE_ID`),
+  INDEX `FK_FN_ROLE_COMPOSITE_CHILD` (`CHILD_ROLE_ID` ASC),
+  CONSTRAINT `FK_FN_ROLE_COMPOSITE_CHILD`
+    FOREIGN KEY (`CHILD_ROLE_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`),
+  CONSTRAINT `FK_FN_ROLE_COMPOSITE_PARENT`
+    FOREIGN KEY (`PARENT_ROLE_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_role_function
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_role_function` (
+  `ROLE_ID` INT(11) NOT NULL,
+  `FUNCTION_CD` VARCHAR(30) NOT NULL,
+  PRIMARY KEY (`ROLE_ID`, `FUNCTION_CD`),
+  INDEX `FN_ROLE_FUNCTION_FUNCTION_CD` (`FUNCTION_CD` ASC),
+  INDEX `FN_ROLE_FUNCTION_ROLE_ID` (`ROLE_ID` ASC),
+  CONSTRAINT `FK_FN_ROLE__REF_198_FN_ROLE`
+    FOREIGN KEY (`ROLE_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`),
+  CONSTRAINT `FK_FN_ROLE__REF_201_FN_FUNCT`
+    FOREIGN KEY (`FUNCTION_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_function` (`FUNCTION_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_schedule_workflows
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_schedule_workflows` (
+  `id_schedule_workflows` BIGINT(25) NOT NULL AUTO_INCREMENT,
+  `workflow_server_url` VARCHAR(45) NULL DEFAULT NULL,
+  `workflow_key` VARCHAR(45) NOT NULL,
+  `workflow_arguments` VARCHAR(45) NULL DEFAULT NULL,
+  `startDateTimeCron` VARCHAR(45) NULL DEFAULT NULL,
+  `endDateTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `start_date_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `recurrence` VARCHAR(45) NULL DEFAULT NULL,
+  PRIMARY KEY (`id_schedule_workflows`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_tab
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_tab` (
+  `TAB_CD` VARCHAR(30) NOT NULL,
+  `TAB_NAME` VARCHAR(50) NOT NULL,
+  `TAB_DESCR` VARCHAR(100) NULL DEFAULT NULL,
+  `ACTION` VARCHAR(100) NOT NULL,
+  `FUNCTION_CD` VARCHAR(30) NOT NULL,
+  `ACTIVE_YN` CHAR(1) NOT NULL,
+  `SORT_ORDER` DECIMAL(11,0) NOT NULL,
+  `PARENT_TAB_CD` VARCHAR(30) NULL DEFAULT NULL,
+  `TAB_SET_CD` VARCHAR(30) NULL DEFAULT NULL,
+  PRIMARY KEY (`TAB_CD`),
+  INDEX `FK_FN_TAB_FUNCTION_CD` (`FUNCTION_CD` ASC),
+  INDEX `FK_FN_TAB_SET_CD` (`TAB_SET_CD` ASC),
+  CONSTRAINT `FK_FN_TAB_FUNCTION_CD`
+    FOREIGN KEY (`FUNCTION_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_function` (`FUNCTION_CD`),
+  CONSTRAINT `FK_FN_TAB_SET_CD`
+    FOREIGN KEY (`TAB_SET_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_lu_tab_set` (`TAB_SET_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_tab_selected
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_tab_selected` (
+  `SELECTED_TAB_CD` VARCHAR(30) NOT NULL,
+  `TAB_URI` VARCHAR(40) NOT NULL,
+  PRIMARY KEY (`SELECTED_TAB_CD`, `TAB_URI`),
+  CONSTRAINT `FK_FN_TAB_SELECTED_TAB_CD`
+    FOREIGN KEY (`SELECTED_TAB_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_tab` (`TAB_CD`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_user
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_user` (
+  `USER_ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `ORG_ID` INT(11) NULL DEFAULT NULL,
+  `MANAGER_ID` INT(11) NULL DEFAULT NULL,
+  `FIRST_NAME` VARCHAR(50) NULL DEFAULT NULL,
+  `MIDDLE_NAME` VARCHAR(50) NULL DEFAULT NULL,
+  `LAST_NAME` VARCHAR(50) NULL DEFAULT NULL,
+  `PHONE` VARCHAR(25) NULL DEFAULT NULL,
+  `FAX` VARCHAR(25) NULL DEFAULT NULL,
+  `CELLULAR` VARCHAR(25) NULL DEFAULT NULL,
+  `EMAIL` VARCHAR(50) NULL DEFAULT NULL,
+  `ADDRESS_ID` DECIMAL(11,0) NULL DEFAULT NULL,
+  `ALERT_METHOD_CD` VARCHAR(10) NULL DEFAULT NULL,
+  `HRID` VARCHAR(20) NULL DEFAULT NULL,
+  `ORG_USER_ID` VARCHAR(20) NULL DEFAULT NULL,
+  `ORG_CODE` VARCHAR(30) NULL DEFAULT NULL,
+  `LOGIN_ID` VARCHAR(25) NULL DEFAULT NULL,
+  `LOGIN_PWD` VARCHAR(25) NULL DEFAULT NULL,
+  `LAST_LOGIN_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
+  `ACTIVE_YN` VARCHAR(1) NOT NULL DEFAULT 'Y',
+  `CREATED_ID` INT(11) NULL DEFAULT NULL,
+  `CREATED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_ID` INT(11) NULL DEFAULT NULL,
+  `MODIFIED_DATE` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `IS_INTERNAL_YN` CHAR(1) NOT NULL DEFAULT 'N',
+  `ADDRESS_LINE_1` VARCHAR(100) NULL DEFAULT NULL,
+  `ADDRESS_LINE_2` VARCHAR(100) NULL DEFAULT NULL,
+  `CITY` VARCHAR(50) NULL DEFAULT NULL,
+  `STATE_CD` VARCHAR(3) NULL DEFAULT NULL,
+  `ZIP_CODE` VARCHAR(11) NULL DEFAULT NULL,
+  `COUNTRY_CD` VARCHAR(3) NULL DEFAULT NULL,
+  `LOCATION_CLLI` VARCHAR(8) NULL DEFAULT NULL,
+  `ORG_MANAGER_USERID` VARCHAR(20) NULL DEFAULT NULL,
+  `COMPANY` VARCHAR(100) NULL DEFAULT NULL,
+  `DEPARTMENT_NAME` VARCHAR(100) NULL DEFAULT NULL,
+  `JOB_TITLE` VARCHAR(100) NULL DEFAULT NULL,
+  `TIMEZONE` INT(11) NULL DEFAULT NULL,
+  `DEPARTMENT` VARCHAR(25) NULL DEFAULT NULL,
+  `BUSINESS_UNIT` VARCHAR(25) NULL DEFAULT NULL,
+  `BUSINESS_UNIT_NAME` VARCHAR(100) NULL DEFAULT NULL,
+  `COST_CENTER` VARCHAR(25) NULL DEFAULT NULL,
+  `FIN_LOC_CODE` VARCHAR(10) NULL DEFAULT NULL,
+  `SILO_STATUS` VARCHAR(10) NULL DEFAULT NULL,
+  PRIMARY KEY (`USER_ID`),
+  UNIQUE INDEX `FN_USER_HRID` (`HRID` ASC),
+  UNIQUE INDEX `FN_USER_LOGIN_ID` (`LOGIN_ID` ASC),
+  INDEX `FN_USER_ADDRESS_ID` (`ADDRESS_ID` ASC),
+  INDEX `FN_USER_ALERT_METHOD_CD` (`ALERT_METHOD_CD` ASC),
+  INDEX `FN_USER_ORG_ID` (`ORG_ID` ASC),
+  INDEX `FK_FN_USER_REF_197_FN_USER` (`MANAGER_ID` ASC),
+  INDEX `FK_FN_USER_REF_198_FN_USER` (`CREATED_ID` ASC),
+  INDEX `FK_FN_USER_REF_199_FN_USER` (`MODIFIED_ID` ASC),
+  INDEX `FK_TIMEZONE` (`TIMEZONE` ASC),
+  CONSTRAINT `FK_FN_USER_REF_110_FN_ORG`
+    FOREIGN KEY (`ORG_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_org` (`ORG_ID`),
+  CONSTRAINT `FK_FN_USER_REF_123_FN_LU_AL`
+    FOREIGN KEY (`ALERT_METHOD_CD`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_lu_alert_method` (`ALERT_METHOD_CD`),
+  CONSTRAINT `FK_FN_USER_REF_197_FN_USER`
+    FOREIGN KEY (`MANAGER_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`),
+  CONSTRAINT `FK_FN_USER_REF_198_FN_USER`
+    FOREIGN KEY (`CREATED_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`),
+  CONSTRAINT `FK_FN_USER_REF_199_FN_USER`
+    FOREIGN KEY (`MODIFIED_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`),
+  CONSTRAINT `FK_TIMEZONE`
+    FOREIGN KEY (`TIMEZONE`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_lu_timezone` (`TIMEZONE_ID`))
+ENGINE = InnoDB
+AUTO_INCREMENT = 3
+DEFAULT CHARACTER SET = utf8;
+
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_user_pseudo_role
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_user_pseudo_role` (
+  `PSEUDO_ROLE_ID` INT(11) NOT NULL,
+  `USER_ID` INT(11) NOT NULL,
+  PRIMARY KEY (`PSEUDO_ROLE_ID`, `USER_ID`),
+  INDEX `FK_PSEUDO_ROLE_USER_ID` (`USER_ID` ASC),
+  CONSTRAINT `FK_PSEUDO_ROLE_PSEUDO_ROLE_ID`
+    FOREIGN KEY (`PSEUDO_ROLE_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`),
+  CONSTRAINT `FK_PSEUDO_ROLE_USER_ID`
+    FOREIGN KEY (`USER_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_user_role
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_user_role` (
+  `USER_ID` INT(10) NOT NULL,
+  `ROLE_ID` INT(10) NOT NULL,
+  `PRIORITY` DECIMAL(4,0) NULL DEFAULT NULL,
+  `APP_ID` INT(11) NOT NULL DEFAULT '1',
+  PRIMARY KEY (`USER_ID`, `ROLE_ID`, `APP_ID`),
+  INDEX `FN_USER_ROLE_ROLE_ID` (`ROLE_ID` ASC),
+  INDEX `FN_USER_ROLE_USER_ID` (`USER_ID` ASC),
+  INDEX `FK_FN_USER__REF_178_FN_APP_idx` (`APP_ID` ASC),
+  CONSTRAINT `FK_FN_USER__REF_172_FN_USER`
+    FOREIGN KEY (`USER_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_user` (`USER_ID`),
+  CONSTRAINT `FK_FN_USER__REF_175_FN_ROLE`
+    FOREIGN KEY (`ROLE_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_role` (`ROLE_ID`),
+  CONSTRAINT `FK_FN_USER__REF_178_FN_APP`
+    FOREIGN KEY (`APP_ID`)
+    REFERENCES `vid_openecomp_epsdk`.`fn_app` (`APP_ID`))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_workflow
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_workflow` (
+  `id` MEDIUMINT(9) NOT NULL AUTO_INCREMENT,
+  `name` VARCHAR(20) NOT NULL,
+  `description` VARCHAR(500) NULL DEFAULT NULL,
+  `run_link` VARCHAR(300) NULL DEFAULT NULL,
+  `suspend_link` VARCHAR(300) NULL DEFAULT NULL,
+  `modified_link` VARCHAR(300) NULL DEFAULT NULL,
+  `active_yn` VARCHAR(300) NULL DEFAULT NULL,
+  `created` VARCHAR(300) NULL DEFAULT NULL,
+  `created_by` INT(11) NULL DEFAULT NULL,
+  `modified` VARCHAR(300) NULL DEFAULT NULL,
+  `modified_by` INT(11) NULL DEFAULT NULL,
+  `workflow_key` VARCHAR(50) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE INDEX `name` (`name` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.fn_xmltype
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`fn_xmltype` (
+  `ID` DECIMAL(10,0) NOT NULL,
+  `XML_DOCUMENT` TEXT NULL DEFAULT NULL,
+  UNIQUE INDEX `FN_XMLTYPE_ID` (`ID` ASC))
+ENGINE = InnoDB
+DEFAULT CHARACTER SET = utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.vid_vnf
+-- ----------------------------------------------------------------------------
+
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`vid_vnf` (
+  `VNF_DB_ID` int(11) NOT NULL AUTO_INCREMENT,
+  `VNF_APP_UUID` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `VNF_APP_INVARIANT_UUID` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`VNF_DB_ID`),
+  UNIQUE KEY `vid_vnf_VNF_ID_uindex` (`VNF_APP_UUID`,`VNF_APP_INVARIANT_UUID`)
+) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.vid_workflow
+-- ----------------------------------------------------------------------------
+
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`vid_workflow` (
+  `WORKFLOW_DB_ID` int(11) NOT NULL AUTO_INCREMENT,
+  `WORKFLOW_APP_NAME` varchar(50) COLLATE utf8_bin NOT NULL,
+  `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`WORKFLOW_DB_ID`),
+  UNIQUE KEY `vid_workflow_workflow_uuid_uindex` (`WORKFLOW_APP_NAME`),
+  UNIQUE KEY `vid_workflow_WORKFLOW_ID_uindex` (`WORKFLOW_DB_ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.vid_vnf_workflow
+-- ----------------------------------------------------------------------------
+
+
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`vid_vnf_workflow` (
+  `VNF_DB_ID` int(11) NOT NULL,
+  `WORKFLOW_DB_ID` int(11) NOT NULL,
+  KEY `vid_vnf_workflow_vid_vnf_VND_ID_fk` (`VNF_DB_ID`),
+  KEY `vid_vnf_workflow_vid_workflow_WORKFLOW_ID_fk` (`WORKFLOW_DB_ID`),
+  CONSTRAINT `vid_vnf_workflow_vid_vnf_VND_ID_fk` FOREIGN KEY (`VNF_DB_ID`) REFERENCES `vid_vnf` (`VNF_DB_ID`),
+  CONSTRAINT `vid_vnf_workflow_vid_workflow_WORKFLOW_ID_fk` FOREIGN KEY (`WORKFLOW_DB_ID`) REFERENCES `vid_openecomp_epsdk`.`vid_workflow` (`WORKFLOW_DB_ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+
+
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.vid_category_parameter
+-- ----------------------------------------------------------------------------
+
+
+CREATE TABLE IF NOT EXISTS `vid_category_parameter` (
+	`CATEGORY_ID` INT(11) NOT NULL AUTO_INCREMENT,
+	`NAME` VARCHAR(255) NULL COLLATE 'utf8_bin',
+	`ID_SUPPORTED` TINYINT(1) NOT NULL DEFAULT '0',
+  `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+	PRIMARY KEY (`CATEGORY_ID`)
+) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=5;
+
+-- -----------------------------------------------------------------------------
+
+ALTER TABLE `vid_category_parameter`
+	ADD COLUMN if not exists `FAMILY` ENUM('PARAMETER_STANDARDIZATION','TENANT_ISOLATION') NOT NULL DEFAULT 'PARAMETER_STANDARDIZATION' AFTER `ID_SUPPORTED`;
+-- ----------------------------------------------------------------------------
+-- Table vid_openecomp_epsdk.vid_category_parameter
+-- ----------------------------------------------------------------------------
+CREATE TABLE IF NOT EXISTS `vid_category_parameter_option` (
+  `CATEGORY_OPT_DB_ID` INT(11) NOT NULL AUTO_INCREMENT,
+  `CATEGORY_OPT_APP_ID` VARCHAR(50) NOT NULL COLLATE 'utf8_bin',
+  `NAME` VARCHAR(50) NULL COLLATE 'utf8_bin',
+  `CATEGORY_ID` INT(11) NOT NULL DEFAULT '0',
+  `CREATED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`CATEGORY_OPT_DB_ID`),
+  UNIQUE INDEX `APP_ID_CATEGORY_UNIQUE` (`CATEGORY_ID`, `CATEGORY_OPT_APP_ID`),
+  UNIQUE INDEX `NAME_CATEGORY_UNIQUE` (`CATEGORY_ID`, `NAME`),
+  CONSTRAINT `FK_OWNING_ENTITY_OPTIONS_TO_OE` FOREIGN KEY (`CATEGORY_ID`) REFERENCES `vid_openecomp_epsdk`.`vid_category_parameter` (`CATEGORY_ID`)
+) COLLATE='utf8_bin' ENGINE=InnoDB AUTO_INCREMENT=25;
+
+CREATE TABLE IF NOT EXISTS `vid_openecomp_epsdk`.`vid_job` (
+  `JOB_ID`        BINARY(16)   NOT NULL PRIMARY KEY,
+  `CREATED_DATE`  TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `MODIFIED_DATE` TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+  `JOB_STATUS`    VARCHAR(50)  NULL COLLATE 'utf8_bin',
+  `JOB_TYPE`      VARCHAR(50)  NULL COLLATE 'utf8_bin',
+  `JOB_DATA`      MEDIUMTEXT   NULL COLLATE 'utf8_bin',
+  `PARENT_JOB_ID` BINARY(16)   NULL,
+  `TAKEN_BY`      VARCHAR(100) NULL COLLATE 'utf8_bin',
+  CONSTRAINT `FK_OWNING_VID_JOB_PARENT` FOREIGN KEY (`PARENT_JOB_ID`) REFERENCES `vid_openecomp_epsdk`.`vid_job` (`JOB_ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
+
+ALTER TABLE `vid_openecomp_epsdk`.`vid_job`
+  ADD COLUMN if NOT EXISTS `TAKEN_BY` VARCHAR (100) COLLATE 'utf8_bin';
+
+
+-- ----------------------------------------------------------------------------
+-- View vid_openecomp_epsdk.v_url_access
+-- ----------------------------------------------------------------------------
+CREATE OR REPLACE ALGORITHM=UNDEFINED SQL SECURITY DEFINER VIEW `v_url_access` AS select distinct `m`.`ACTION` AS `URL`,`m`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_menu` `m` where (`m`.`ACTION` is not null) union select distinct `t`.`ACTION` AS `URL`,`t`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_tab` `t` where (`t`.`ACTION` is not null) union select `r`.`RESTRICTED_URL` AS `URL`,`r`.`FUNCTION_CD` AS `FUNCTION_CD` from `fn_restricted_url` `r`;
 SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file
