Kuali Rice Data Set Migration Process

Data Set Locations

Data sets which are to be migrated into the Rice Database are stored in the following Subversion repositories:

SVN Accounts

New developers should request SVN access by creating a ticket in the Kuali Rice Access JIRA project.

Pre-production Deployments

  1. All deployments outside of the production environment will be executed from the client application trunk (e.g. https://svn.ucdavis.edu/svn/kuali/RiceApplications/KualiFinancialSystem/trunk)
  2. Pre-production deployment should follow the same data set requirements listed below.

Data Set Management Requirements

  1. Release versions of data sets must be stored in <Repository Root/tags/<client release version> (e.g. https://svn.ucdavis.edu/svn/kuali/RiceApplications/MyInfoVault/tags/3.5)
  2. Only the Rice DBA and appropriate client application migrators have access to the tags directory in the repositories.
  3. The data sets must come in the form of SQL scripts. Each deployment will contain a deployment wrapper script and then one or more data scripts.
    1. You can download templates of deploy script and data script.
Driver Scriptt:KR-1234-deploy.sql
---------------Opening Section-------------------
COL DT NOPRINT NEW_VALUE db_date;
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD-HH24MISS') DT FROM DUAL;
COL db NOPRINT NEW_VALUE db_name;
SELECT SYS_CONTEXT ('RICE', 'MOTHRA') DB FROM DUAL;
----- Name the spool file -----
SPOOL ./deploy-rice-KR-<Jira-####>--&db_date-&db_name.log;
SET ECHO ON;
SET TERMOUT ON;
SET VERIFY OFF;
SET TRIMSPOOL ON;
SET SERVEROUTPUT ON SIZE 1000000;
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK;
WHENEVER OSERROR EXIT SQL.SQLCODE ROLLBACK;

SET ECHO ON;

----- RICE KR-#### Deployment -----
SHOW USER;
@<child-script1>.sql
@<child-script2>.sql


----- Deployment Complete -----
SPOOL OFF;

Example Data Script:KR-1234.sql
SET SQLBLANKLINES ON
SET DEFINE OFF

-- DDL/DML Statements



-- DDL/DML Statements

commit;
/

Data Set Migration Process

  1. A migrator files a ticket in the Kuali Rice JIRA project requesting migration of a data set to the Rice database. The JIRA ticket should provide a link to the SVN location of the data files.  The Jira ticket request should include a Priority as well as targeted date and time for the deployment.
  2. Upon approval, the migrator copies the data set to the <Repository Root/tags/<client release version> directory, citing the Kuali Rice JIRA ticket.
    Example:Migrating to <tags>
    svn copy https://svn.ucdavis.edu/svn/kuali/RiceApplications/KualiCoeus/trunk/datasets https://svn.ucdavis.edu/svn/kuali/RiceApplications/KualiCoeus/tags/2.0 -m "<KR JIRA ticket>"
    
  3. Prior to a release, the migrator adds a task (or requests that a task be added) in the Deployment Plan stating that the data set is to be migrated.
  4. The Rice Service Manager creates a ticket in the Kuali Rice JIRA project that reflects this task and assigns it to the Rice DBA.
  5. The Rice DBA checks the data set out from the repository.
    • Log onto the appropriate database server
    • cd /opt/pkg/oracle/subversion
    • Execute svn co https://svn.ucdavis.edu/svn/kuali/RiceApplications/<Application>/tags/<release_version> command against the repository location provided in the Jira Ticket.
      $ svn co https://svn.ucdavis.edu/svn/kuali/RiceApplications/<Application>/tags/<release_version>   <Application>
      
    • This will create an <Application> directory with a <release_version> subdirectory
    • If the <Application>/<release_version> directory exists from a previous deployment:
      • cd /opt/pkg/oracle/subversion/<Application>/<release_version>
      • Execute svn update
        $ cd /opt/pkg/oracle/subversion/<Application>/<release_version>
        $ svn update
        
    • The <release_version> subdirectory will contain script(s) which will be named for the Jira ticket number (eg. KR-1234.sql).
    • Access Mothra Test DB as environment schema owner noted in Jira ticket and execute script:
      sqlplus <environment schema owner>/<password>
      @KR_####_deploy.sql
      
    • The Rice DBA attaches the script output to the JIRA ticket
  6. During a dry-run deployment, the Rice DBA executes the data set scripts against the UPSTAGE environment database.
  7. At deployment time, the Rice DBA executes the data set scripts against the production database.