[ https://issues.apache.org/jira/browse/RANGER-3504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17445687#comment-17445687 ]
Pradeep Agrawal commented on RANGER-3504: ----------------------------------------- Patch committed : https://github.com/apache/ranger/commit/dc6dc621fc99f1dbff355c2e2ac00472155a0baf > Create framework to execute DB patch dependent on Java patch. > ------------------------------------------------------------- > > Key: RANGER-3504 > URL: https://issues.apache.org/jira/browse/RANGER-3504 > Project: Ranger > Issue Type: Improvement > Components: Ranger > Affects Versions: 2.2.0 > Reporter: Dineshkumar Yadav > Assignee: Dineshkumar Yadav > Priority: Major > > Problem Statement > Currently we have two sets of patches in Ranger (DB & Java patches). > During Ranger setup, DB patches get executed first then Java patches get > executed in an orderly manner based on their sequence. > We don't have any mechanism where we can execute Java Patch first and it's > dependent DB patch afterwards. > > Please find the below approach to handle such scenarios. > Approach: > # While executing DB patches, first check if any pre java patches are > present by name starting with {*}PatchPreSql_<DB_version>{*}. > # If a Pre Java patch is found then execute that java patch first. > # Execute DB patch. > # Check again if there are any post java patches present by name starting > with {*}PatchPostSql_<DB_version>{*}. > # If Post Java patches are found, execute them. > # While naming the dependent Java patches we need to follow the below > convention. > # Currently we follow convention: *Patch<custom_name>_J<5 digit sequence > number>.java* > # Proposed naming convention for dependent Java Patch. *Patch<Post or > Pre>Sql_<dependent DB patch version number>_<custom_name>_J<5 digit sequence > number>.java* > Use Case: > Suppose we have a DB patch (050-uniqueindex.sql) and there are two Java > patches one needs to execute before and another immediately after DB patch. > In that scenario we should use the following convention for naming java > patches. > Pre Java Patch : PatchPreSql_050_CleanData_J10050.java > Post Java Patch : PatchPostSql_050_UpdateData_J10051.java > Note: File to be changed : db_setup.py > -- This message was sent by Atlassian Jira (v8.20.1#820001)