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
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/octopus/migration.rb', line 59 def self.included(base) base.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
82 83 84 85 86 |
# File 'lib/octopus/migration.rb', line 82 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
88 89 90 91 92 93 94 |
# File 'lib/octopus/migration.rb', line 88 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
76 77 78 79 80 |
# File 'lib/octopus/migration.rb', line 76 def run_with_octopus(&block) run_without_octopus(&block) rescue ActiveRecord::UnknownMigrationVersionError => e raise unless migrations(true).find {|m| m.version == e.version} end |