Module: DbCharmer::MultiDbMigrations::ClassMethods
- Defined in:
- lib/db_charmer/multi_db_migrations.rb
Instance Method Summary collapse
- #db_magic(opts = {}) ⇒ Object
- #hijack_connection! ⇒ Object
- #on_db(db_name) ⇒ Object
- #works_on_db(db_name) ⇒ Object
Instance Method Details
#db_magic(opts = {}) ⇒ Object
36 37 38 39 |
# File 'lib/db_charmer/multi_db_migrations.rb', line 36 def db_magic(opts = {}) raise ArgumentError, "No connection name - no magic!" unless opts[:connection] works_on_db(opts[:connection]) end |
#hijack_connection! ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/db_charmer/multi_db_migrations.rb', line 9 def hijack_connection! class << self def connection # puts "DEBUG: Retrieving migration connection" MigrationAbstractClass.connection end end end |
#on_db(db_name) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/db_charmer/multi_db_migrations.rb', line 18 def on_db(db_name) hijack_connection! announce "Switching connection to #{db_name}" old_proxy = MigrationAbstractClass.db_charmer_connection_proxy MigrationAbstractClass.switch_connection_to(db_name, DbCharmer.migration_connections_should_exist?) yield ensure announce "Checking all database connections" ActiveRecord::Base.verify_active_connections! announce "Switching connection back to default" MigrationAbstractClass.switch_connection_to(old_proxy) end |
#works_on_db(db_name) ⇒ Object
31 32 33 34 |
# File 'lib/db_charmer/multi_db_migrations.rb', line 31 def works_on_db(db_name) hijack_connection! MigrationAbstractClass.switch_connection_to(db_name, DbCharmer.migration_connections_should_exist?) end |