Module: Octopus::Migrator
- Defined in:
- lib/octopus/migration.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #migrate_with_octopus(&block) ⇒ Object
- #migrations_with_octopus(shard_agnostic = false) ⇒ Object
- #run_with_octopus(&block) ⇒ Object
Class Method Details
.included(base) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/octopus/migration.rb', line 64 def self.included(base) base.extend(ClassMethods) base.class_eval do class << self alias_method :migrate_without_octopus, :migrate alias_method :migrate, :migrate_with_octopus alias_method :up_without_octopus, :up alias_method :up, :up_with_octopus alias_method :down_without_octopus, :down alias_method :down, :down_with_octopus alias_method :run_without_octopus, :run alias_method :run, :run_with_octopus alias_method :rollback_without_octopus, :rollback alias_method :rollback, :rollback_with_octopus end end base.send :alias_method, :run_without_octopus, :run base.send :alias_method, :run, :run_with_octopus base.send :alias_method, :migrate_without_octopus, :migrate base.send :alias_method, :migrate, :migrate_with_octopus base.send :alias_method, :migrations_without_octopus, :migrations base.send :alias_method, :migrations, :migrations_with_octopus end |
Instance Method Details
#migrate_with_octopus(&block) ⇒ Object
102 103 104 105 106 |
# File 'lib/octopus/migration.rb', line 102 def migrate_with_octopus(&block) migrate_without_octopus(&block) rescue ActiveRecord::UnknownMigrationVersionError => e raise unless migrations(true).detect { |m| m.version == e.version } end |
#migrations_with_octopus(shard_agnostic = false) ⇒ Object
108 109 110 111 112 113 114 |
# File 'lib/octopus/migration.rb', line 108 def migrations_with_octopus(shard_agnostic = false) connection = ActiveRecord::Base.connection migrations = migrations_without_octopus return migrations if !connection.is_a?(Octopus::Proxy) || shard_agnostic migrations.select { |m| m.shards.include?(connection.current_shard.to_sym) } end |
#run_with_octopus(&block) ⇒ Object
96 97 98 99 100 |
# File 'lib/octopus/migration.rb', line 96 def run_with_octopus(&block) run_without_octopus(&block) rescue ActiveRecord::UnknownMigrationVersionError => e raise unless migrations(true).detect { |m| m.version == e.version } end |