class ActiveRecord::ConnectionAdapters::Mysql2AdapterWithoutLock

Constants

DDL_WITH_COMMA_REGEX
DDL_WITH_LOCK_NONE_REGEX
OPTIMIZABLE_DDL_REGEX

Public Class Methods

new(mysql2_adapter, verbose = false) click to toggle source
Calls superclass method
# File lib/mysql_online_migrations/mysql2_adapter_without_lock.rb, line 9
def initialize(mysql2_adapter, verbose = false)
  @verbose = verbose
  params = [:@connection, :@logger, :@connection_options, :@config].map do |sym|
    mysql2_adapter.instance_variable_get(sym)
  end
  super(*params)
end

Public Instance Methods

execute(sql, name = nil) click to toggle source
# File lib/mysql_online_migrations/mysql2_adapter_without_lock.rb, line 18
def execute(sql, name = nil)
  if sql =~ OPTIMIZABLE_DDL_REGEX
    sql = "#{sql} #{lock_none_statement(sql)}"
  end
  original_execute(sql, name)
end
Also aliased as: original_execute
lock_none_statement(sql) click to toggle source
# File lib/mysql_online_migrations/mysql2_adapter_without_lock.rb, line 25
def lock_none_statement(sql)
  return "" unless ActiveRecord::Base.mysql_online_migrations
  return "" if sql =~ DDL_WITH_LOCK_NONE_REGEX
  comma_delimiter = (sql =~ DDL_WITH_COMMA_REGEX ? "," : "")
  puts "ONLINE MIGRATION" if @verbose
  "#{comma_delimiter} LOCK=NONE"
end
original_execute(sql, name = nil)
Alias for: execute