module MysqlOnlineMigrations
Attributes
verbose[RW]
Public Class Methods
prepended(base)
click to toggle source
# File lib/mysql_online_migrations.rb, line 13 def self.prepended(base) ActiveRecord::Base.send(:class_attribute, :mysql_online_migrations, :instance_writer => false) ActiveRecord::Base.send("mysql_online_migrations=", true) end
Public Instance Methods
connection()
click to toggle source
Calls superclass method
# File lib/mysql_online_migrations.rb, line 18 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, MysqlOnlineMigrations.verbose) if adapter_mode @no_lock_adapter else original_connection.instance_variable_set(:@delegate, @no_lock_adapter) original_connection end end
with_lock() { || ... }
click to toggle source
# File lib/mysql_online_migrations.rb, line 38 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