module DataMapper::Adapters::SqliteAdapterMethods

Public Instance Methods

disable_referential_integrity() { || ... } click to toggle source

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

# File lib/database_cleaner/data_mapper/truncation.rb, line 69
def disable_referential_integrity
  yield
end
storage_names(repository = :default) click to toggle source

taken from github.com/godfat/dm-mapping/tree/master

# File lib/database_cleaner/data_mapper/truncation.rb, line 48
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
truncate_table(table_name) click to toggle source
# File lib/database_cleaner/data_mapper/truncation.rb, line 59
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

Private Instance Methods

uses_sequence?() click to toggle source

Returns a boolean indicating if the SQLite database is using the sqlite_sequence table.

# File lib/database_cleaner/data_mapper/truncation.rb, line 76
def uses_sequence?
  sql = <<-SQL
    SELECT name FROM sqlite_master
    WHERE type='table' AND name='sqlite_sequence'
  SQL
  select(sql).first
end