Class: JewelSeed::Migrator

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

Class Method Summary collapse

Class Method Details

.current_versionObject



17
18
19
# File 'lib/jewel_seed/migrator.rb', line 17

def current_version
  SeedMigration.current_version.to_i
end

.migrateObject



25
26
27
28
29
30
31
# File 'lib/jewel_seed/migrator.rb', line 25

def migrate
  target_migrations.each do |migration|
    ActiveRecord::Base.transaction do
      migration.up
    end
  end
end

.migration_filesObject



9
10
11
# File 'lib/jewel_seed/migrator.rb', line 9

def migration_files
  Dir["#{SEED_MIGRATE_PATH}/[0-9]*_*.rb"]
end

.migrationsObject



13
14
15
# File 'lib/jewel_seed/migrator.rb', line 13

def migrations
  migration_files.map { |f| MigrationProxy.new(f) }
end

.rollbackObject



33
34
35
36
37
38
39
# File 'lib/jewel_seed/migrator.rb', line 33

def rollback
  migration = migrations.find { |m| m.version == current_version }

  ActiveRecord::Base.transaction do
    migration.down
  end
end

.setupObject



4
5
6
7
# File 'lib/jewel_seed/migrator.rb', line 4

def setup
  SeedMigration.create_table unless SeedMigration.table_exists?
  SeedMigrationTable.create_table unless SeedMigrationTable.table_exists?
end

.target_migrationsObject



21
22
23
# File 'lib/jewel_seed/migrator.rb', line 21

def target_migrations
  migrations.select { |m| m.version > current_version }
end