Class: ActiveRecord::Tasks::RdbDatabaseTasks

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/tasks/rdb_database_tasks.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(configuration, root = ::ActiveRecord::Tasks::DatabaseTasks.root) ⇒ RdbDatabaseTasks

Returns a new instance of RdbDatabaseTasks.



8
9
10
11
# File 'lib/active_record/tasks/rdb_database_tasks.rb', line 8

def initialize(configuration, root = ::ActiveRecord::Tasks::DatabaseTasks.root)
  @root = root
  @configuration = rdb_connection_config(configuration)
end

Instance Method Details

#createObject



13
14
15
16
17
18
19
# File 'lib/active_record/tasks/rdb_database_tasks.rb', line 13

def create
  rdb_database.create
  establish_connection configuration
rescue ::Fb::Error => e
  raise unless e.message.include?('database or file exists')
  raise DatabaseAlreadyExists
end

#dropObject



21
22
23
24
25
# File 'lib/active_record/tasks/rdb_database_tasks.rb', line 21

def drop
  rdb_database.drop
rescue ::Fb::Error => e
  raise ::ActiveRecord::ConnectionNotEstablished, e.message
end

#purgeObject



27
28
29
30
31
32
33
34
# File 'lib/active_record/tasks/rdb_database_tasks.rb', line 27

def purge
  begin
    drop
  rescue StandardError
    nil
  end
  create
end

#structure_dump(filename) ⇒ Object



36
37
38
# File 'lib/active_record/tasks/rdb_database_tasks.rb', line 36

def structure_dump(filename)
  isql :extract, output: filename
end

#structure_load(filename) ⇒ Object



40
41
42
# File 'lib/active_record/tasks/rdb_database_tasks.rb', line 40

def structure_load(filename)
  isql input: filename
end