Module: ActiveRecord::Turntable::Migration::SchemaStatementsExt

Defined in:
lib/active_record/turntable/migration.rb

Instance Method Summary collapse

Instance Method Details

#create_sequence_for(table_name, options = { }) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/active_record/turntable/migration.rb', line 48

def create_sequence_for(table_name, options = { })
  options = options.merge(:id => false)

  # TODO: pkname should be pulled from table definitions
  pkname = "id"
  sequence_table_name = ActiveRecord::Turntable::Sequencer.sequence_name(table_name, "id")
  create_table(sequence_table_name, options) do |t|
    t.integer :id, :limit => 8
  end
  execute "INSERT INTO #{quote_table_name(sequence_table_name)} (`id`) VALUES (0)"
end

#drop_sequence_for(table_name, options = { }) ⇒ Object



60
61
62
63
64
65
# File 'lib/active_record/turntable/migration.rb', line 60

def drop_sequence_for(table_name, options = { })
  # TODO: pkname should be pulled from table definitions
  pkname = "id"
  sequence_table_name = ActiveRecord::Turntable::Sequencer.sequence_name(table_name, "id")
  drop_table(sequence_table_name)
end

#rename_sequence_for(table_name, new_name) ⇒ Object



67
68
69
70
71
72
# File 'lib/active_record/turntable/migration.rb', line 67

def rename_sequence_for(table_name, new_name)
  # TODO: pkname should pulled from table definitions
  seq_table_name = ActiveRecord::Turntable::Sequencer.sequence_name(table_name, "id")
  new_seq_name = ActiveRecord::Turntable::Sequencer.sequence_name(new_name, "id")
  rename_table(seq_table_name, new_seq_name)
end