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
Calls superclass method
SequelRails::Storage::Abstract#schema_information_dump
# 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
Calls superclass method
SequelRails::Storage::Abstract#collation
# 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