Module: MysqlOnlineMigrations
- Defined in:
- lib/mysql_online_migrations.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.prepended(base) ⇒ Object
10 11 12 13 |
# File 'lib/mysql_online_migrations.rb', line 10 def self.prepended(base) ActiveRecord::Base.send(:class_attribute, :mysql_online_migrations, :instance_writer => false) ActiveRecord::Base.send("mysql_online_migrations=", true) end |
Instance Method Details
#connection ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/mysql_online_migrations.rb', line 15 def connection original_connection = super adapter_mode = original_connection.class.name == "ActiveRecord::ConnectionAdapters::Mysql2Adapter" @original_adapter ||= if adapter_mode original_connection else original_connection.instance_variable_get(:@delegate) end @no_lock_adapter ||= ActiveRecord::ConnectionAdapters::Mysql2AdapterWithoutLock.new(@original_adapter) if adapter_mode @no_lock_adapter else original_connection.instance_variable_set(:@delegate, @no_lock_adapter) original_connection end end |
#with_lock ⇒ Object
35 36 37 38 39 40 |
# File 'lib/mysql_online_migrations.rb', line 35 def with_lock original_value = ActiveRecord::Base.mysql_online_migrations ActiveRecord::Base.mysql_online_migrations = false yield ActiveRecord::Base.mysql_online_migrations = original_value end |