Module: ActiveRecord::Sharding::DatabaseTasks::TasksForSingleSequencerTask

Included in:
ActiveRecord::Sharding::DatabaseTasks
Defined in:
lib/active_record/sharding/database_tasks.rb

Instance Method Summary collapse

Instance Method Details

#create_sequencer_database(args) ⇒ Object



184
185
186
# File 'lib/active_record/sharding/database_tasks.rb', line 184

def create_sequencer_database(args)
  exec_task_for_sequencer_database "create", args
end

#create_table_sequencer_database(args) ⇒ Object



192
193
194
195
196
# File 'lib/active_record/sharding/database_tasks.rb', line 192

def create_table_sequencer_database(args)
  sequencer = sequencer_or_error "create_table", args
  create_table_sql = "CREATE TABLE #{sequencer.table_name} (id BIGINT unsigned NOT NULL DEFAULT 0) ENGINE=MyISAM"
  execute sequencer.connection_name.to_s, create_table_sql
end

#drop_sequencer_database(args) ⇒ Object



188
189
190
# File 'lib/active_record/sharding/database_tasks.rb', line 188

def drop_sequencer_database(args)
  exec_task_for_sequencer_database "drop", args
end

#insert_initial_record_sequencer_database(args) ⇒ Object



198
199
200
201
202
203
204
205
206
207
208
# File 'lib/active_record/sharding/database_tasks.rb', line 198

def insert_initial_record_sequencer_database(args)
  sequencer = sequencer_or_error "insert_initial_record", args
  records_count = sequencer_records_count sequencer

  if records_count == 0
    insert_initial_record_sql = "INSERT INTO #{sequencer.table_name} VALUES (0)"
    execute sequencer.connection_name.to_s, insert_initial_record_sql
  else
    puts "Exist sequencer record in #{sequencer.table_name} table."
  end
end