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:
Application |
Repository Root |
---|---|
Rice Standalone Server |
https://svn.ucdavis.edu/svn/kuali/RiceStandaloneServer/rice-db/ |
MyInfoVault |
https://svn.ucdavis.edu/svn/kuali/RiceApplications/MyInfoVault/ |
Kuali Financial System |
https://svn.ucdavis.edu/svn/kuali/RiceApplications/KualiFinancialSystem/ |
Kuali COEUS |
https://svn.ucdavis.edu/svn/kuali/RiceApplications/KualiCoeus/ |
UCD Time Reporting System |
https://svn.ucdavis.edu/svn/kuali/RiceApplications/TimeReportingSystem/ |
Core Billing Project |
https://svn.ucdavis.edu/svn/kuali/RiceApplications/CoreBilling/ |
SVN Accounts
New developers should request SVN access by creating a ticket in the Kuali Rice Access JIRA project.
Pre-production Deployments
- 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)
- Pre-production deployment should follow the same data set requirements listed below.
Data Set Management Requirements
- 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) - Only the Rice DBA and appropriate client application migrators have access to the
tags
directory in the repositories. - 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.
- You can download templates of deploy script and data script.
---------------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;
SET SQLBLANKLINES ON SET DEFINE OFF -- DDL/DML Statements -- DDL/DML Statements commit; /
Data Set Migration Process
- 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.
- 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>"
- 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.
- The Rice Service Manager creates a ticket in the Kuali Rice JIRA project that reflects this task and assigns it to the Rice DBA.
- Jira ticket should specify the KR_1234_deploy.sql script to execute.
- Jira Ticket should contain the specific repository location of the script(s): (eg. https://svn.ucdavis.edu/svn/kuali/RiceApplications/<Application>/tags/<release_version>)
- 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
- During a dry-run deployment, the Rice DBA executes the data set scripts against the UPSTAGE environment database.
- At deployment time, the Rice DBA executes the data set scripts against the production database.