Class: BranchingCleaner::LeftoversCleaner

Inherits:
Base
  • Object
show all
Defined in:
lib/branching_cleaner/leftovers_cleaner.rb

Instance Method Summary collapse

Instance Method Details

#all_databases_from_serverObject



25
26
27
# File 'lib/branching_cleaner/leftovers_cleaner.rb', line 25

def all_databases_from_server
  connection.query('SELECT datname FROM pg_catalog.pg_database').flatten
end

#all_project_databases(env) ⇒ Object



21
22
23
# File 'lib/branching_cleaner/leftovers_cleaner.rb', line 21

def all_project_databases(env)
  all_databases_from_server.select { |database| database.match(/#{db_core_name}#{env}_/)}
end

#databases_except_master(env) ⇒ Object



17
18
19
# File 'lib/branching_cleaner/leftovers_cleaner.rb', line 17

def databases_except_master(env)
  all_project_databases(env) - ["#{db_core_name}#{env}_master"]
end

#databases_to_removeObject



13
14
15
# File 'lib/branching_cleaner/leftovers_cleaner.rb', line 13

def databases_to_remove
  databases_except_master('test') + databases_except_master('development')
end

#runObject



5
6
7
8
9
10
11
# File 'lib/branching_cleaner/leftovers_cleaner.rb', line 5

def run
  GIT::switch_to_master_branch
  databases_to_remove.each do |database|
    puts "* Removing '#{database}'"
    connection.drop_database(database)
  end
end