Class: Sequent::Migrations::MigrateEvents

Inherits:
Object
  • Object
show all
Defined in:
lib/sequent/migrations/migrate_events.rb

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ MigrateEvents

Returns a new instance of MigrateEvents.

Parameters:

  • env

    The string representing the current environment. E.g. “development”, “production”



27
28
29
30
31
32
# File 'lib/sequent/migrations/migrate_events.rb', line 27

def initialize(env)
  warn <<~EOS
    [DEPRECATED] Use of MigrateEvents is deprecated and will be removed from future version. Please use Sequent::Migrations::ViewSchema instead. See the changelog on how to update.
  EOS
  @env = env
end

Instance Method Details

#execute_migrations(current_version, new_version) ⇒ Object

Parameters:

  • current_version

    The current version of the application. E.g. 10

  • new_version

    The version to migrate to. E.g. 11

  • &after_migration_block

    an optional block (with the current upgrade version as param) to run after the migrations run. E.g. close resources



41
42
43
44
45
46
47
48
49
50
# File 'lib/sequent/migrations/migrate_events.rb', line 41

def execute_migrations(current_version, new_version)
  migrations(current_version, new_version).each do |migration_class|
    migration = migration_class.new(@env)
    begin
      migration.migrate
    ensure
      yield(migration.version) if block_given?
    end
  end
end

#has_migrations?(current_version, new_version) ⇒ Boolean

Returns:



62
63
64
# File 'lib/sequent/migrations/migrate_events.rb', line 62

def has_migrations?(current_version, new_version)
  migrations(current_version, new_version).any?
end

#migrations(current_version, new_version) ⇒ Object



52
53
54
55
56
57
58
59
60
# File 'lib/sequent/migrations/migrate_events.rb', line 52

def migrations(current_version, new_version)
  return [] if current_version == 0

  ((current_version + 1)..new_version).map do |upgrade_to_version|
    Class.const_get("Database::MigrateToVersion#{upgrade_to_version}")
  rescue NameError
    nil
  end.compact
end