makes the AR deletion strategy aware of the needed JdbcAdapter workaround
This commit is contained in:
parent
4663b23779
commit
9b4a52bf11
|
@ -3,17 +3,13 @@ require 'active_record/connection_adapters/abstract_adapter'
|
|||
require "database_cleaner/generic/truncation"
|
||||
require 'database_cleaner/active_record/base'
|
||||
require 'database_cleaner/active_record/truncation'
|
||||
# This file may seem to have duplication with that of truncation, but by keeping them separate
|
||||
# we avoiding loading this code when it is not being used (which is the common case).
|
||||
|
||||
module ActiveRecord
|
||||
module ConnectionAdapters
|
||||
|
||||
class AbstractAdapter
|
||||
end
|
||||
|
||||
class SQLiteAdapter < AbstractAdapter
|
||||
end
|
||||
|
||||
class MysqlAdapter < AbstractAdapter
|
||||
class MysqlAdapter < MYSQL_ADAPTER_PARENT
|
||||
def delete_table(table_name)
|
||||
execute("DELETE FROM #{quote_table_name(table_name)};")
|
||||
end
|
||||
|
@ -25,12 +21,6 @@ module ActiveRecord
|
|||
end
|
||||
end
|
||||
|
||||
class SQLite3Adapter < SQLiteAdapter
|
||||
def delete_table(table_name)
|
||||
execute("DELETE FROM #{quote_table_name(table_name)};")
|
||||
end
|
||||
end
|
||||
|
||||
class JdbcAdapter < AbstractAdapter
|
||||
def delete_table(table_name)
|
||||
execute("DELETE FROM #{quote_table_name(table_name)};")
|
||||
|
|
|
@ -7,16 +7,19 @@ module ActiveRecord
|
|||
module ConnectionAdapters
|
||||
# Activerecord-jdbc-adapter defines class dependencies a bit differently - if it is present, confirm to ArJdbc hierarchy to avoid 'superclass mismatch' errors.
|
||||
USE_ARJDBC_WORKAROUND = defined?(ArJdbc)
|
||||
|
||||
|
||||
class AbstractAdapter
|
||||
end
|
||||
|
||||
|
||||
unless USE_ARJDBC_WORKAROUND
|
||||
class SQLiteAdapter < AbstractAdapter
|
||||
end
|
||||
end
|
||||
|
||||
class MysqlAdapter < (USE_ARJDBC_WORKAROUND ? JdbcAdapter : AbstractAdapter)
|
||||
MYSQL_ADAPTER_PARENT = USE_ARJDBC_WORKAROUND ? JdbcAdapter : AbstractAdapter
|
||||
SQLITE_ADAPTER_PARENT = USE_ARJDBC_WORKAROUND ? JdbcAdapter : SQLiteAdapter
|
||||
|
||||
class MysqlAdapter < MYSQL_ADAPTER_PARENT
|
||||
def truncate_table(table_name)
|
||||
execute("TRUNCATE TABLE #{quote_table_name(table_name)};")
|
||||
end
|
||||
|
@ -28,10 +31,11 @@ module ActiveRecord
|
|||
end
|
||||
end
|
||||
|
||||
class SQLite3Adapter < (USE_ARJDBC_WORKAROUND ? JdbcAdapter : SQLiteAdapter)
|
||||
def truncate_table(table_name)
|
||||
class SQLite3Adapter < SQLITE_ADAPTER_PARENT
|
||||
def delete_table(table_name)
|
||||
execute("DELETE FROM #{quote_table_name(table_name)};")
|
||||
end
|
||||
alias truncate_table delete_table
|
||||
end
|
||||
|
||||
class JdbcAdapter < AbstractAdapter
|
||||
|
|
Loading…
Reference in New Issue