Esempio n. 1
0
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)
Esempio n. 2
0
    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
Esempio n. 3
0
    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
Esempio n. 4
0
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)