Class: Shearwater::Migrator

Inherits:
Object
  • Object
show all
Defined in:
lib/shearwater/migrator.rb

Instance Method Summary collapse

Constructor Details

#initialize(migrations_dir, backend, options = {}) ⇒ Migrator

Returns a new instance of Migrator.



5
6
7
8
# File 'lib/shearwater/migrator.rb', line 5

def initialize(migrations_dir, backend, options = {})
  @migrations_dir, @backend = migrations_dir, backend
  @verbose = !!options[:verbose]
end

Instance Method Details

#migrateObject



10
11
12
13
14
15
16
17
18
19
# File 'lib/shearwater/migrator.rb', line 10

def migrate
  migrations.keys.sort.each do |id|
    unless @backend.migrated?(id)
      migration = migrations[id]
      say "Migrating #{migration.class.name}"
      migration.up
      @backend.migrated!(id)
    end
  end
end

#rollback(step = 1) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/shearwater/migrator.rb', line 21

def rollback(step = 1)
  step.times do
    id = @backend.last_migration
    break if id.nil?
    migration = migrations[id]
    say "Rolling back #{migration.class.name}"
    migration.down
    @backend.rolled_back!(id)
  end
end