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
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/octopus/migration.rb', line 69 def self.included(base) base.send(:extend, ClassMethods) base.class_eval do class << self alias_method_chain :migrate, :octopus alias_method_chain :up, :octopus alias_method_chain :down, :octopus alias_method_chain :run, :octopus end end base.alias_method_chain :run, :octopus base.alias_method_chain :migrate, :octopus base.alias_method_chain :migrations, :octopus end |
Instance Method Details
#migrate_with_octopus(&block) ⇒ Object
92 93 94 95 96 |
# File 'lib/octopus/migration.rb', line 92 def migrate_with_octopus(&block) migrate_without_octopus(&block) rescue ActiveRecord::UnknownMigrationVersionError => e raise unless migrations(true).find {|m| m.version == e.version} end |
#migrations_with_octopus(shard_agnostic = false) ⇒ Object
98 99 100 101 102 103 104 |
# File 'lib/octopus/migration.rb', line 98 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
86 87 88 89 90 |
# File 'lib/octopus/migration.rb', line 86 def run_with_octopus(&block) run_without_octopus(&block) rescue ActiveRecord::UnknownMigrationVersionError => e raise unless migrations(true).find {|m| m.version == e.version} end |