def patch(env, baseDir, connectConfig=None): if connectConfig is None: connectConfig = conn_config.retrieveConnectionConfigurationFor( env, baseDir) security.prompt_password_if_empty(connectConfig) release_number = common_dml.update_release_number(connectConfig) scripts = dir_struct.all_patch_scripts_sorted_asc(baseDir) for script in scripts: patch_type = common_dml.determine_patch_type_if_already_applied( connectConfig, script) if patch_type in ('PATCH', 'BASELINE'): # do nothing continue elif patch_type == 'ROLLBACK': print "Applying patch: " + script.getName() apply_patch(connectConfig, script) common_dml.update_patch_metadata_entry(connectConfig, script, release_number, 'PATCH') else: print "Applying patch: " + script.getName() apply_patch(connectConfig, script) common_dml.insert_patch_metadata_entry(connectConfig, script, release_number)
def test_patch_scripts_natural_order(self): scripts = all_patch_scripts_sorted_asc('tests/impl') self.assertEqual('tests/impl/patches/1/patch', scripts[0].getPath()) self.assertEqual('test-a.sql', scripts[0].getName()) self.assertEqual('tests/impl/patches/1/patch', scripts[1].getPath()) self.assertEqual('test-b.sql', scripts[1].getName()) self.assertEqual('tests/impl/patches/2/patch', scripts[2].getPath()) self.assertEqual('test-c.sql', scripts[2].getName()) self.assertEqual('tests/impl/patches/2/patch', scripts[3].getPath()) self.assertEqual('test-d.sql', scripts[3].getName()) return
def test_patch_scripts_natural_order(self): scripts = all_patch_scripts_sorted_asc("tests/impl") self.assertEqual("tests/impl/patches/1/patch", scripts[0].getPath()) self.assertEqual("test-a.sql", scripts[0].getName()) self.assertEqual("tests/impl/patches/1/patch", scripts[1].getPath()) self.assertEqual("test-b.sql", scripts[1].getName()) self.assertEqual("tests/impl/patches/2/patch", scripts[2].getPath()) self.assertEqual("test-c.sql", scripts[2].getName()) self.assertEqual("tests/impl/patches/2/patch", scripts[3].getPath()) self.assertEqual("test-d.sql", scripts[3].getName()) return
def patch(env, baseDir, connectConfig=None): if connectConfig is None: connectConfig = conn_config.retrieveConnectionConfigurationFor(env, baseDir) security.prompt_password_if_empty(connectConfig) release_number = common_dml.update_release_number(connectConfig) scripts = dir_struct.all_patch_scripts_sorted_asc(baseDir) for script in scripts: patch_type = common_dml.determine_patch_type_if_already_applied(connectConfig, script) if patch_type in ("PATCH", "BASELINE"): # do nothing continue elif patch_type == "ROLLBACK": print "Applying patch: " + script.getName() apply_patch(connectConfig, script) common_dml.update_patch_metadata_entry(connectConfig, script, release_number, "PATCH") else: print "Applying patch: " + script.getName() apply_patch(connectConfig, script) common_dml.insert_patch_metadata_entry(connectConfig, script, release_number)