Method: DBGeni::BaseModules::Code#remove_code

Defined in:
lib/dbgeni/base_code.rb

#remove_code(code_obj, force = nil) ⇒ Object


104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/dbgeni/base_code.rb', line 104

def remove_code(code_obj, force=nil)
  ensure_initialized
  begin
    run_plugin(:before_code_remove, code_obj)
    code_obj.remove!(@config, connection, force)
    @logger.info "Removed #{code_obj.to_s}"
    run_plugin(:after_code_remove, code_obj)
  rescue DBGeni::MigratorCouldNotConnect
    @logger.error "Failed to connect to the database CLI"
    raise DBGeni::CodeRemoveFailed
  rescue DBGeni::CodeRemoveFailed => e
    # Not sure if the code can even get here. Many if timeout waiting for lock on object?
    # In this case, dbgeni should stop - but also treat the error like a migration error

    # TODO - not sure this is even correct - dropping code doesn't create a logfile ...
    @logger.error "Failed to remove #{code_obj.filename}. Errors in #{code_obj.logfile}"
    raise DBGeni::CodeRemoveFailed
  end
end