class SequelRails::Storage::Jdbc

Public Instance Methods

_create() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 28
def _create
  if _is_sqlite?
    return if in_memory?
    ::Sequel.connect config['url']
  elsif _is_mysql?
    ::Sequel.connect("#{_root_url}#{_params}") do |db|
      db.execute("CREATE DATABASE IF NOT EXISTS `#{db_name}` DEFAULT CHARACTER SET #{charset} DEFAULT COLLATE #{collation}")
    end
  elsif _is_postgres?
    adapter = ::SequelRails::Storage::Postgres.new(config)
    adapter._create
  end
end
_drop() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 42
def _drop
  if _is_sqlite?
    return if in_memory?
    FileUtils.rm db_name if File.exist? db_name
  elsif _is_mysql?
    ::Sequel.connect("#{_root_url}#{_params}") do |db|
      db.execute("DROP DATABASE IF EXISTS `#{db_name}`")
    end
  elsif _is_postgres?
    adapter = ::SequelRails::Storage::Postgres.new(config)
    adapter._drop
  end
end
_dump(filename) click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 56
def _dump(filename)
  if _is_postgres?
    adapter = ::SequelRails::Storage::Postgres.new(config)
    adapter._dump(filename)
  else
    raise NotImplementedError
  end
end
_is_mysql?() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 4
def _is_mysql?
  config['adapter'].start_with?('jdbc:mysql')
end
_is_postgres?() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 8
def _is_postgres?
  config['adapter'].start_with?('jdbc:postgresql')
end
_is_sqlite?() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 12
def _is_sqlite?
  config['adapter'].start_with?('jdbc:sqlite')
end
_load(filename) click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 65
def _load(filename)
  if _is_postgres?
    adapter = ::SequelRails::Storage::Postgres.new(config)
    adapter._load(filename)
  else
    raise NotImplementedError
  end
end
_params() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 24
def _params
  config['url'].scan(/\?.*$/).first
end
_root_url() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 16
def _root_url
  config['url'].scan(%r{^jdbc:mysql://[\w\.]*:?\d*}).first
end
db_name() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 20
def db_name
  config['database']
end
schema_information_dump(migrator, sql_dump) click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 74
def schema_information_dump(migrator, sql_dump)
  if _is_postgres?
    schema_information_dump_with_search_path(migrator, sql_dump)
  else
    super
  end
end

Private Instance Methods

collation() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 84
def collation
  @collation ||= super || 'utf8_unicode_ci'
end
in_memory?() click to toggle source
# File lib/sequel_rails/storage/jdbc.rb, line 88
def in_memory?
  return false unless _is_sqlite?
  database == ':memory:'
end