class Sequel::MigrationAlterTableReverser

Handles reversing an alter_table block in a reversible migration.

Public Class Methods

new() click to toggle source
# File lib/sequel/extensions/migration.rb, line 244
def initialize
  @actions = []
end

Public Instance Methods

reverse(&block) click to toggle source
# File lib/sequel/extensions/migration.rb, line 248
def reverse(&block)
  instance_exec(&block)
  actions = @actions.reverse
  # Allow calling private methods as the reversing methods are private
  Proc.new{actions.each{|a| send(*a)}}
end

Private Instance Methods

add_column(*args) click to toggle source
# File lib/sequel/extensions/migration.rb, line 257
def add_column(*args)
  @actions << [:drop_column, args.first]
end
add_constraint(*args) click to toggle source
# File lib/sequel/extensions/migration.rb, line 261
def add_constraint(*args)
  name = args.first
  name = name.is_a?(Hash) ? name[:name] : name
  @actions << [:drop_constraint, name]
end
add_foreign_key(key, table, *args) click to toggle source
# File lib/sequel/extensions/migration.rb, line 267
def add_foreign_key(key, table, *args)
  @actions << [:drop_foreign_key, key, *args]
end
add_full_text_index(*args)
Alias for: add_index
add_index(*args) click to toggle source
# File lib/sequel/extensions/migration.rb, line 276
def add_index(*args)
  @actions << [:drop_index, *args]
end
add_primary_key(*args) click to toggle source
# File lib/sequel/extensions/migration.rb, line 271
def add_primary_key(*args)
  raise if args.first.is_a?(Array)
  @actions << [:drop_column, args.first]
end
add_spatial_index(*args)
Alias for: add_index
rename_column(name, new_name) click to toggle source
# File lib/sequel/extensions/migration.rb, line 282
def rename_column(name, new_name)
  @actions << [:rename_column, new_name, name]
end
set_column_allow_null(name, allow_null=true) click to toggle source
# File lib/sequel/extensions/migration.rb, line 286
def set_column_allow_null(name, allow_null=true)
  @actions << [:set_column_allow_null, name, !allow_null]
end