mirror of
https://github.com/jbranchaud/til
synced 2026-01-04 23:58:01 +00:00
Add Truncate Almost All Tables as a rails til
This commit is contained in:
@@ -229,6 +229,7 @@ _351 TILs and counting..._
|
||||
- [Show Pending Migrations](rails/show-pending-migrations.md)
|
||||
- [Show Rails Models With Pry](rails/show-rails-models-with-pry.md)
|
||||
- [Show Rails Routes With Pry](rails/show-rails-routes-with-pry.md)
|
||||
- [Truncate Almost All Tables](rails/truncate-almost-all-tables.md)
|
||||
|
||||
### Ruby
|
||||
|
||||
|
||||
19
rails/truncate-almost-all-tables.md
Normal file
19
rails/truncate-almost-all-tables.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Truncate Almost All Tables
|
||||
|
||||
The
|
||||
[`database_cleaner`](https://github.com/DatabaseCleaner/database_cleaner)
|
||||
gem is a handy way to make sure you have a consistent database context for
|
||||
each test example or suite. One `database_cleaner` strategy that can be used
|
||||
is the `truncation` strategy. This truncates the data from all the tables by
|
||||
default. This is not ideal for *fixed* tables that contain domain-specific
|
||||
data because you end up having to do way more test setup than should be
|
||||
necessary. Fortunately, specific tables can be excepted by the truncation
|
||||
strategy using the `except` option.
|
||||
|
||||
For instance, if we have a standard set of roles for users of our
|
||||
application, we can except that table from truncation with a line like the
|
||||
following in our `rails_helper.rb` file:
|
||||
|
||||
```
|
||||
DatabaseCleaner.strategy = :truncation, {:except => %w[roles]}
|
||||
```
|
||||
Reference in New Issue
Block a user