Class: MotionRecord::Schema::Migrator

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(migrations) ⇒ Migrator

Returns a new instance of Migrator.



7
8
9
10
11
12
# File 'lib/motion_record/schema/migrator.rb', line 7

def initialize(migrations)
  @migrations = migrations
  @migrated_versions = nil

  initialize_schema_table
end

Instance Attribute Details

#migrationsObject (readonly)

Returns the value of attribute migrations.



5
6
7
# File 'lib/motion_record/schema/migrator.rb', line 5

def migrations
  @migrations
end

Instance Method Details

#migratedObject



26
27
28
# File 'lib/motion_record/schema/migrator.rb', line 26

def migrated
  @migrated_versions ||= Schema::Migration.pluck(:version).sort
end

#pending_migrationsObject



22
23
24
# File 'lib/motion_record/schema/migrator.rb', line 22

def pending_migrations
  @migrations.reject { |migration| migrated.include?(migration.version) }
end

#runObject



14
15
16
17
18
19
20
# File 'lib/motion_record/schema/migrator.rb', line 14

def run
  pending_migrations.each do |migration|
    migration.execute
    @migrated_versions << migration.version
    Schema::Migration.create(version: migration.version)
  end 
end