mirror of
https://github.com/DatabaseCleaner/database_cleaner
synced 2023-03-27 23:22:03 -04:00
Merge branch 'sqlite-adapters-fix' of github.com:avalanche123/database_cleaner into avalanche123-sqlite-adapters-fix
Conflicts: lib/database_cleaner/data_mapper/truncation.rb
This commit is contained in:
commit
d4c5a8925e
1 changed files with 4 additions and 41 deletions
|
@ -42,8 +42,7 @@ module DataMapper
|
|||
|
||||
end
|
||||
|
||||
|
||||
class Sqlite3Adapter < DataObjectsAdapter
|
||||
module SqliteAdapterMethods
|
||||
|
||||
# taken from http://github.com/godfat/dm-mapping/tree/master
|
||||
def storage_names(repository = :default)
|
||||
|
@ -73,6 +72,7 @@ module DataMapper
|
|||
|
||||
private
|
||||
|
||||
# Returns a boolean indicating if the SQLite database is using the sqlite_sequence table.
|
||||
def uses_sequence?
|
||||
sql = <<-SQL
|
||||
SELECT name FROM sqlite_master
|
||||
|
@ -80,47 +80,10 @@ module DataMapper
|
|||
SQL
|
||||
select(sql).first
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
class SqliteAdapter < DataObjectsAdapter
|
||||
# taken from http://github.com/godfat/dm-mapping/tree/master
|
||||
def storage_names(repository = :default)
|
||||
# activerecord-2.1.0/lib/active_record/connection_adapters/sqlite_adapter.rb: 177
|
||||
sql = <<-SQL
|
||||
SELECT name
|
||||
FROM sqlite_master
|
||||
WHERE type = 'table' AND NOT name = 'sqlite_sequence'
|
||||
SQL
|
||||
# activerecord-2.1.0/lib/active_record/connection_adapters/sqlite_adapter.rb: 181
|
||||
select(sql)
|
||||
end
|
||||
|
||||
def truncate_table(table_name)
|
||||
execute("DELETE FROM #{quote_name(table_name)};")
|
||||
if uses_sequence?
|
||||
execute("DELETE FROM sqlite_sequence where name = '#{table_name}';")
|
||||
end
|
||||
end
|
||||
|
||||
# this is a no-op copied from activerecord
|
||||
# i didn't find out if/how this is possible
|
||||
# activerecord also doesn't do more here
|
||||
def disable_referential_integrity
|
||||
yield
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def uses_sequence?
|
||||
sql = <<-SQL
|
||||
SELECT name FROM sqlite_master
|
||||
WHERE type='table' AND name='sqlite_sequence'
|
||||
SQL
|
||||
select(sql).first
|
||||
end
|
||||
|
||||
end
|
||||
class SqliteAdapter; include SqliteAdapterMethods; end
|
||||
class Sqlite3Adapter; include SqliteAdapterMethods; end
|
||||
|
||||
# FIXME
|
||||
# i don't know if this works
|
||||
|
|
Loading…
Add table
Reference in a new issue