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



87
88
89
90
91
92
93
94
# File 'lib/active_record/turntable/migration.rb', line 87

def create_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")
  create_table(sequence_table_name, options)
  execute "ALTER TABLE #{quote_table_name(sequence_table_name)} MODIFY id bigint(20) DEFAULT NULL auto_increment NOT NULL;"
  execute "INSERT INTO #{quote_table_name(sequence_table_name)} (`id`) VALUES (0)"
end

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



96
97
98
99
100
101
# File 'lib/active_record/turntable/migration.rb', line 96

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



103
104
105
106
107
108
# File 'lib/active_record/turntable/migration.rb', line 103

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