class ArJdbc::Tasks::HSQLDBDatabaseTasks

Public Instance Methods

create() click to toggle source
# File lib/arjdbc/tasks/hsqldb_database_tasks.rb, line 7
def create
  establish_connection(config)
  ActiveRecord::Base.connection
end
drop() click to toggle source
# File lib/arjdbc/tasks/hsqldb_database_tasks.rb, line 12
def drop
  error = nil
  begin
    establish_connection(config)
    do_drop_database(config)
  rescue => e
    error = e
    raise error
  ensure
    begin
      keep_db_files = ENV['KEEP_DB_FILES'] && ENV['KEEP_DB_FILES'] != 'false'
      delete_database_files(config) unless keep_db_files
    rescue => e
      raise e unless error
    end
  end
end
Also aliased as: purge
purge()
Alias for: drop

Protected Instance Methods

delete_database_files(config) click to toggle source
# File lib/arjdbc/tasks/hsqldb_database_tasks.rb, line 38
def delete_database_files(config)
  return unless db_base = database_base_name(config)
  Dir.glob("#{db_base}.*").each do |file|
    # test.hsqldb.tmp (dir)
    # test.hsqldb.lck
    # test.hsqldb.lobs
    # test.hsqldb.script
    # test.hsqldb.properties
    if File.directory?(file)
      FileUtils.rm_r(file)
      FileUtils.rmdir(file)
    else
      FileUtils.rm(file)
    end
  end
  if File.exist?(db_base)
    FileUtils.rm_r(db_base)
    FileUtils.rmdir(db_base)
  end
end
do_drop_database(config) click to toggle source
# File lib/arjdbc/tasks/hsqldb_database_tasks.rb, line 33
def do_drop_database(config)
  connection.drop_database resolve_database(config)
  connection.shutdown
end

Private Instance Methods

database_base_name(config) click to toggle source
# File lib/arjdbc/tasks/hsqldb_database_tasks.rb, line 61
def database_base_name(config)
  db = resolve_database(config, true)
  db[0, 4] == 'mem:' ? nil : begin
    expand_path db[0, 5] == 'file:' ? db[5..-1] : db
  end
end