Uploaded image for project: 'Kuali Rice Development'
  1. Kuali Rice Development
  2. KULRICE-3746

Research and Document LiquiBase Database Tool

    Details

    • Application Requirement:
      Rice

      Description

      We currently "support" both Oracle and MySql databases, but in order to do so we have to manually create upgrade scripts in both Oracle and MySql SQL syntax. This is time consuming and prone to errors. In order to automate this process the Rice team is investigating a product called LiquiBase.

      http://www.liquibase.org/

      LiquiBase seems to be a versatile DB tool that has many features, but right now we are only interested in the versioning and upgrading capabilities.

      1. Research the tool
      2. Come up with a developers guide for use of the tool in Rice

      • We need this tool to create Oracle and MySql upgrade scripts for each release as a minimum.
      • Look into where this tool overlaps the impex tool.

      In order to research the tool, create a branch of the 1.0.1.1 version of rice. In this new branch of Rice, set up a liquiBase directory inside the scripts/upgrades/1.0.1 to 1.0.1.1 directory.
      Translate the current db-upgrade scripts (located in the db-updates directory) into the format recommended for LiquiBase.

      Please write the developers guide here:
      https://test.kuali.org/confluence/display/KULRICE/LiquiBase+Database+Change+Management

        Attachments

          Activity

          Hide
          ahamid Aaron Hamid (Inactive) added a comment -

          That sounds cool Leo. Can you elaborate on the refactoring support you mentioned? From what I could tell, LiquiBase handles schema changes but not necessarily data changes - is this something that is being improved?

          Show
          ahamid Aaron Hamid (Inactive) added a comment - That sounds cool Leo. Can you elaborate on the refactoring support you mentioned? From what I could tell, LiquiBase handles schema changes but not necessarily data changes - is this something that is being improved?
          Hide
          smummadi Srikanth Mummadi (Inactive) added a comment -

          Instead of separately creating the upgrade scripts for Oracle, I have added the Oracle scripts in MySQL xml upgrade scripts by specifying the dbms types (mysql/oracle).
          Custom sql statements which are common for both mysql and oracle need not to mention any dbms types.
          I have create separate ant target "oracle-liquibase-update" in rice1.0.1.1/build.xml file. Which will update the oracle database with the upgrade scripts.

          Some of the tables are not created by running the import statement, which are required to execute the Oracle liquibase update statements. I have added those statements to the Jira.

          Show
          smummadi Srikanth Mummadi (Inactive) added a comment - Instead of separately creating the upgrade scripts for Oracle, I have added the Oracle scripts in MySQL xml upgrade scripts by specifying the dbms types (mysql/oracle). Custom sql statements which are common for both mysql and oracle need not to mention any dbms types. I have create separate ant target "oracle-liquibase-update" in rice1.0.1.1/build.xml file. Which will update the oracle database with the upgrade scripts. Some of the tables are not created by running the import statement, which are required to execute the Oracle liquibase update statements. I have added those statements to the Jira.
          Hide
          smummadi Srikanth Mummadi (Inactive) added a comment -

          I have modified the xml files and checked in the code with the Oracle Liquibase update statements. When I checked in the file "12-07-2009.xml", it has been updated with the same revision id for three changeSet tags.

          But, when I run the 'oracle-liquibase-update' I am getting the following build error
          BUILD FAILED
          D:\LiquiBase W\rice-1.0.1\build.xml:146: liquibase.exception.ValidationFailedException: Validation Failed:
          1 change sets had duplicate identifiers
          scripts/upgrades/1.0.1 to 1.0.1.1/liquibase/updates/12-07-2009.xml::$Rev: 11639 $::$Author: smummadi $

          Because the changeSets with the same revision id could not be executed on the same database.
          The error can be resolved by placing the custom sql in both (mysql/oracle) update statements.

          Show
          smummadi Srikanth Mummadi (Inactive) added a comment - I have modified the xml files and checked in the code with the Oracle Liquibase update statements. When I checked in the file "12-07-2009.xml", it has been updated with the same revision id for three changeSet tags. But, when I run the 'oracle-liquibase-update' I am getting the following build error BUILD FAILED D:\LiquiBase W\rice-1.0.1\build.xml:146: liquibase.exception.ValidationFailedException: Validation Failed: 1 change sets had duplicate identifiers scripts/upgrades/1.0.1 to 1.0.1.1/liquibase/updates/12-07-2009.xml::$Rev: 11639 $::$Author: smummadi $ Because the changeSets with the same revision id could not be executed on the same database. The error can be resolved by placing the custom sql in both (mysql/oracle) update statements.
          Hide
          jcoltrin Jessica Coltrin (Inactive) added a comment -

          Assigning this old Jira to Jeff since he's working on the latest iteration for Liquibase.

          Jeff - please close as 'Won't Fix' if this is irrelevant or keep it open if it is.

          Show
          jcoltrin Jessica Coltrin (Inactive) added a comment - Assigning this old Jira to Jeff since he's working on the latest iteration for Liquibase. Jeff - please close as 'Won't Fix' if this is irrelevant or keep it open if it is.
          Hide
          jcoltrin Jessica Coltrin (Inactive) added a comment -

          The research is done and a plane in place. See https://wiki.kuali.org/display/KULRICE/Liquibase for the latest information. Separate Jiras will be created to implement once the Liquibase transition is worked on.

          Show
          jcoltrin Jessica Coltrin (Inactive) added a comment - The research is done and a plane in place. See https://wiki.kuali.org/display/KULRICE/Liquibase for the latest information. Separate Jiras will be created to implement once the Liquibase transition is worked on.

            People

            • Assignee:
              jcaddel Jeff Caddel (Inactive)
              Reporter:
              gtaylor Garey Taylor
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: