Module: ActiveRecord::Turntable::Migration::SchemaStatementsExt
- Defined in:
- lib/active_record/turntable/migration.rb
Instance Method Summary collapse
- #create_sequence_for(table_name, options = { }) ⇒ Object
- #drop_sequence_for(table_name, options = { }) ⇒ Object
- #rename_sequence_for(table_name, new_name) ⇒ Object
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, = { }) # 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, ) 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, = { }) # 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 |