Handles reversing an alter_table block in a reversible migration.
# File lib/sequel/extensions/migration.rb, line 229 def initialize @actions = [] end
# File lib/sequel/extensions/migration.rb, line 233 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
# File lib/sequel/extensions/migration.rb, line 242 def add_column(*args) @actions << [:drop_column, args.first] end
# File lib/sequel/extensions/migration.rb, line 246 def add_constraint(*args) name = args.first name = name.is_a?(Hash) ? name[:name] : name @actions << [:drop_constraint, name] end
# File lib/sequel/extensions/migration.rb, line 252 def add_foreign_key(key, table, *args) @actions << [:drop_foreign_key, key, *args] end
# File lib/sequel/extensions/migration.rb, line 261 def add_index(*args) @actions << [:drop_index, *args] end
# File lib/sequel/extensions/migration.rb, line 256 def add_primary_key(*args) raise if args.first.is_a?(Array) @actions << [:drop_column, args.first] end
# File lib/sequel/extensions/migration.rb, line 267 def rename_column(name, new_name) @actions << [:rename_column, new_name, name] end