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