Files

Class/Module Index [+]

Quicksearch

DataMapper::Adapters::PostgresAdapter

FIXME i don't know if this works i basically just copied activerecord code to get a rough idea what they do. i don't have postgres available, so i won't be the one to write this. maybe codes below gets some postgres/datamapper user going, though.

Public Instance Methods

disable_referential_integrity(repository = :default) click to toggle source

FIXME copied unchanged from activerecord

# File lib/database_cleaner/data_mapper/truncation.rb, line 126
def disable_referential_integrity(repository = :default)
  if supports_disable_referential_integrity? then
    execute(storage_names(repository).collect do |name|
      "ALTER TABLE #{quote_name(name)} DISABLE TRIGGER ALL"
    end.join(";"))
  end
  yield
ensure
  if supports_disable_referential_integrity? then
    execute(storage_names(repository).collect do |name|
      "ALTER TABLE #{quote_name(name)} ENABLE TRIGGER ALL"
    end.join(";"))
  end
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 103
def storage_names(repository = :default)
  sql =           SELECT table_name FROM "information_schema"."tables"          WHERE table_schema = current_schema() and table_type = 'BASE TABLE'
  select(sql)
end
supports_disable_referential_integrity?() click to toggle source

FIXME copied from activerecord

# File lib/database_cleaner/data_mapper/truncation.rb, line 117
def supports_disable_referential_integrity?
  version = select("SHOW server_version")[0][0].split('.')
  (version[0].to_i >= 8 && version[1].to_i >= 1) ? true : false
rescue
  return false
end
truncate_table(table_name) click to toggle source
# File lib/database_cleaner/data_mapper/truncation.rb, line 111
def truncate_table(table_name)
  execute("TRUNCATE TABLE #{quote_name(table_name)} RESTART IDENTITY CASCADE;")
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.