Clean your Sequel databases with Database Cleaner.
See https://github.com/DatabaseCleaner/database_cleaner for more information.
# Gemfile
group :test do
gem 'database_cleaner-sequel'
end
# test_helper.rb
DatabaseCleaner[:sequel].strategy = :transaction
class Minitest::Spec
before :each do
DatabaseCleaner[:sequel].start
end
after :each do
DatabaseCleaner[:sequel].clean
end
end
Three strategies are supported:
- Transaction (default)
- Truncation
- Deletion
The transaction strategy accepts no options.
The truncation and deletion strategies may accept the following options:
:only
and:except
may take a list of table names:
# Only truncate the "users" table.
DatabaseCleaner[:sequel].strategy = :truncation, only: ["users"]
# Delete all tables except the "users" table.
DatabaseCleaner[:sequel].strategy = :deletion, except: ["users"]
:pre_count
- When set totrue
, this will check each table for existing rows before truncating or deleting it. This can speed up test suites when many of the tables are never populated. Defaults tofalse
.
#db
defaults to the default Sequel database, but can be specified manually in a few ways:
# Sequel connection object
DatabaseCleaner[:sequel].db = Sequel.connect(uri)
# Back to default:
DatabaseCleaner[:sequel].db = :default
# Multiple Sequel databases can be specified:
DatabaseCleaner[:sequel, db: :default]
DatabaseCleaner[:sequel, db: Sequel.connect(uri)]
See LICENSE for details.