Skip to content

Latest commit

 

History

History
565 lines (373 loc) · 21.2 KB

History.rdoc

File metadata and controls

565 lines (373 loc) · 21.2 KB

Development (unreleased)

2.1.0 2024-10-24

Changes

* Add support for trilogy: https://github.com/DatabaseCleaner/database_cleaner/pull/707

Chores

* Start testing with Ruby 3.3 in CI: https://github.com/DatabaseCleaner/database_cleaner/pull/710
* Point CI badge to GitHub Actions: https://github.com/DatabaseCleaner/database_cleaner/pull/706

Breaking changes

* Skip conventional sqlite:// URLs from safeguards: https://github.com/DatabaseCleaner/database_cleaner/pull/715

2.0.2 2023-03-10

Bugfixes

* Dependency configuration -- relax dependencies with database_cleaner-active_record: https://github.com/DatabaseCleaner/database_cleaner/pull/699

2.0.1 2021-02-04

Bugfixes

* Regression: allow_remote_database_url and url_allowlist not working anymore: https://github.com/DatabaseCleaner/database_cleaner/pull/671

2.0.0 2021-01-31

Changes

* Rename `url_whitelist` to `url_allowlist`
* Allowlist now supports regular expressions
* Fixed Ruby 2.7 deprecation warnings

Breaking changes

* Failed checks against the allowlist now raise `UrlNotAllowed` rather than `NotWhitelistedUrl`

2.0.0.beta2 2020-05-30

Features

* New API for ORM Adapter gems: https://github.com/DatabaseCleaner/database_cleaner/pull/644

Breaking changes

* Rename :connection configuration option to :db for consistency: https://github.com/DatabaseCleaner/database_cleaner/pull/650
* Remove all #orm= setter methods: https://github.com/DatabaseCleaner/database_cleaner/pull/643/files
* drop support for Ruby 2.4 which is EOL as of 2020-03-31: https://github.com/DatabaseCleaner/database_cleaner/pull/635

2.0.0.beta 2020-04-05

Breaking changes

* Replace old shared RSpec examples with new "database_cleaner adapter" example: https://github.com/DatabaseCleaner/database_cleaner/pull/629
* split gem into database_cleaner-core and database_cleaner metagem.
* Support Ruby versions 2.4, 2.5, 2.6, and 2.7, and drop support for older Rubies.
* remove all deprecated code and get the specs passing again.
* Split off all adapter gems into their own repos: https://github.com/DatabaseCleaner/database_cleaner/pull/620

1.99.0 2021-01-31

Changes

* Remove unnecessary dependency on database_cleaner-mongo from database_cleaner-mongoid: @botandrose
* Enable the :cache_tables option for the mongo truncation strategy, and default to true: https://github.com/DatabaseCleaner/database_cleaner/pull/646"
* Introduce deletion aliases for truncation strategies for mongo, mongoid, and redis adapters. https://github.com/DatabaseCleaner/database_cleaner/pull/654
* Add new :db orm configuration key, for consistency with #db and #db=. https://github.com/DatabaseCleaner/database_cleaner/pull/649

Deprecations

* Deprecate all #orm= setter methods: https://github.com/DatabaseCleaner/database_cleaner/pull/643
* Deprecate non-functional :reset_ids option in ActiveRecord truncation strategy: https://github.com/DatabaseCleaner/database_cleaner/issues/559
* Deprecate mongo truncation's `:cache_tables => true` option in favor of `false`, to prep for caching removal in v2.0: https://github.com/DatabaseCleaner/database_cleaner/pull/646"
* Deprecate redis truncation's #url method in favor of #db: @botandrose
* Deprecate mongo, mongoid, and redis truncation strategies in favor of deletion. https://github.com/DatabaseCleaner/database_cleaner/pull/654
* Deprecate :connection and :model configuration options in favor of :db for consistency: https://github.com/DatabaseCleaner/database_cleaner/pull/650

Bugfixes

* Fix deprecation warning about `DatabaseCleaner.connections` to recommend a better alternative: https://github.com/DatabaseCleaner/database_cleaner/pull/656

1.8.5 2020-05-04

Bug Fixes

* Fix :mongo strategy: https://github.com/DatabaseCleaner/database_cleaner/pull/645

1.8.4 2020-04-02

Bug Fixes

* Fix false positive deprecation warnings on Windows: https://github.com/DatabaseCleaner/database_cleaner/pull/633

1.8.3 2020-02-18

Bug Fixes

* Fix performance issue of DatabaseCleaner::Base#orm_module: https://github.com/DatabaseCleaner/database_cleaner/pull/625

1.8.2 2020-02-01

Bug Fixes

* Fix database_cleaner-ohm autodetected adapter loading: https://github.com/DatabaseCleaner/database_cleaner/pull/619
* Fix database_cleaner-mongo_mapper autodetected adapter loading: @botandrose
* Fix database_cleaner-mongoid autodetected adapter loading: https://github.com/DatabaseCleaner/database_cleaner/pull/617
* Exclude ar_internal_metadata from truncation on Rails 5: https://github.com/DatabaseCleaner/database_cleaner/pull/588

Changes

* Deprecate ohm adapter: https://github.com/DatabaseCleaner/database_cleaner/pull/619

1.8.1 2020-01-30

Bug Fixes

* Remove undeclared active_support dependency: https://github.com/DatabaseCleaner/database_cleaner/pull/612

1.8.0 2020-01-29

Bug Fixes

* Fix MySQL deprecation warnings with Rails 5: https://github.com/DatabaseCleaner/database_cleaner/pull/574
* Fix MySQL truncation with `pre_count: true`: https://github.com/DatabaseCleaner/database_cleaner/pull/498
* Fix primary key sequence resetting in Sequel with Postgres and SQLite: https://github.com/DatabaseCleaner/database_cleaner/pull/538/files
* ActiveRecord truncation adapter doesn't work with Oracle: https://github.com/DatabaseCleaner/database_cleaner/pull/542

Changes

* Extract ORM adapters into gems: https://github.com/DatabaseCleaner/database_cleaner/pull/560
* Allow postgres:///dbname as a local url: https://github.com/DatabaseCleaner/database_cleaner/pull/569
* Add an optional URL whitelist safeguard: https://github.com/DatabaseCleaner/database_cleaner/pull/526
* Add `local` tld to safeguard check: https://github.com/DatabaseCleaner/database_cleaner/pull/547
* Speed up ActiveRecord deletion strategy: https://github.com/DatabaseCleaner/database_cleaner/pull/534
* Consider `sqlite:` database urls to be local: https://github.com/DatabaseCleaner/database_cleaner/pull/529

1.7.0 2018-04-19

Bug Fixes

* Remove unnecessary folders from gem: https://github.com/DatabaseCleaner/database_cleaner/pull/508
* Properly quote table names: https://github.com/DatabaseCleaner/database_cleaner/pull/501
* Use more idiomatic Ruby in README: https://github.com/DatabaseCleaner/database_cleaner/pull/510
* Return ::ActiveRecord::Base from `establish_connection`: https://github.com/DatabaseCleaner/database_cleaner/pull/399

Changes

* Safeguard against running in production or running against a remote database: https://github.com/DatabaseCleaner/database_cleaner/pull/521

1.6.2 2017-10-29

Bug Fixes

* ActiveRecord::Base namespace patch: https://github.com/DatabaseCleaner/database_cleaner/pull/490
* Better exclusion condition based on Rails version: https://github.com/DatabaseCleaner/database_cleaner/pull/487

Changes

* Better documentation. Typos were fixed. Sequel deletion is supported: https://github.com/DatabaseCleaner/database_cleaner/pull/500

1.6.1 2017-05-09

Bug Fixes

* Deletion strategy fix for ActiveRecord (@kawamoto)

1.6.0 2017-05-04

New Features/Changes

* Rails 5.1 support: Remove deprecation warning (@activefx)
* MySQL 5.6+ InnoDB support (@ahorek)
* Better documentation (fixed typo) (@hoshinotsuyoshi)

Bug Fixes

* Fix Redis db option (@soylent)
* Make NullStrategy API-complete (@anicholson)

1.5.3 2016-04-22

Bug Fixes

* @P9GIT fixed issue #436

1.5.2 2016-04-17

New Features/Changes

* Use default_client with mongoid 5.0 (@stjhimy)
* Added comparable support for strategies (@st0012)
* Better README instructions that suggest `append_after` (@jrochkind)
* Removed deprecation warnings for Rails 5.0+ (@pschambacher)
* Upgrade to RSpec 2.14 (@skalee)

Bug Fixes

* @dmitrypol fixed issue #409
* @schmierkov fixed the Travis builds with PR #416
* @shosti fixed issue #345
* @kylev fixed issue #379
* @skalee fixed the Travis builds for Neo4j with PR #433

1.5.1 2015-09-05

Bug Fix

* Added mongo2 missing files to the gemspec. (@geerzo)

1.5.0 2015-09-02

New Features/Changes

* Use ensure within the cleaning method. (@cema-sp)
* Restored mysql2 + jruby support. (@ahorek)
* Added required ruby version to gemspec. (@garethrees)
* Added support for Mongoid 5.0 and Mongo Ruby Driver 2.0. (@jprincipe)
* Added support for additional Neo4j::Session.open options. (@brienw)
* And a bunch of code style and README improvements

Bug Fixes

* Fixed truncation for MongoDB 3. (@andreale)
* Fixed YAML error when building gem. (@joshnesbitt)
* Fixed deletion strategy for JDBC MySQL. (@DanElbert)
* Fixed open transactions for multiple connections. (@claptimes5)

1.4.1 2015-03-09

* Support for deletion with Sequel. (@cyberdelia)
* Use ActiveRecord::Base configuration when different from config file. (@wendy0402)
* Removed dependency of Mongo. (@codegourmet)
* Fixed issue with tables schema prefix in Postgres. (@phoenixek12)
* Use ruby 1.8 syntax. (@daniel-g)
* Added license to gemspec. (@chrismar035)
* Improved coverage for migrations table. (@jonallured)

1.4.0 2014-12-17

New Features/Changes

* Support for Neo4j. (@dpisarewski)
* Support for multiple connections on Mongoid. (@nyarly)

Better Performance

* Using the deletion strategy with Mysql now only deletes those tables which have had records added to them. (@MadRabbit)
* Add support for pre_count on Sequel with Mysql. (@vrinek)
* Cache collection names in mongo's truncation strategy. (@nyarly)

Bug Fixes

* Fix undefined method error with DataMapper SQLite adaptor. (@lanej)
* Fully define Mysql2 adaptor constant. (@jgonera)
* Don't truncate schema tables in Postgres. (@billywatson)
* Fix issue where Moped cleaner was missing collections with 'system' in their name. (@MartinNowak)

1.3.0 2014-05-23

New Features/Changes

* Introduced `DatabaseCleaner::cleaning` method that takes a block. (@ethco)
* Improved Sequel support and added more tests (@ethco, @rhunter)

Bug Fixes

* Fixed an issue with the `Transaction` strategy and Active Record where application-level transactions
  are not rolledback correctly. (Godfrey Chan)
* activerecord-oracle_enhanced-adapter now works again (#259, @sockmonk)

1.2.0 2013-10-09

A huge thanks goes to @tommeier for fixing the bug with class loading that was cuasing the wrong adapters to be used in certain cases.

New Features/Changes

* Upgraded RSpec to remove deprecation warnings (John Rowe)
* Caching of tables to truncate is now optional (@marcoow)

Bug Fixes

* Use class_eval loading of superclasses to ensure right version of class is patched. (Tom Meier, Joel Nimety, Ernesto Tagwerker)
* Add truncate_tables method to SQLiteAdapter. (Chris Mo)
* Fixes missing #uses_sequence invokation in adapter classes for sqlite and sqlite3 (Lefteris Laskaridis)

1.1.1 2013-08-01

Bug Fixes

* Fixes typo in Postgres superclass (POSTGRE_ADAPTER_PARENT > POSTGRES_ADAPTER_PARENT) (Joel Nimety)

1.1.0 2013-08-01

New Features/Changes

* schema_migrations table name is now retrieved from ActiveRecord (Kyle Stevens)
* Autoloading logic is now exposed, see PR #212 for details (Jeff Felchner)

Bug Fixes

* Deletion strategy works again on MySQL, had to roll back multiple statements patch.
* Fix MySqlAdapter superclass bug via class_eval loading of superclasses (Tom Meier)
* Sequel strategy fix dealing with symbol/string mismatch on table names. (Fred Wu)

1.0.1 2013-05-13

* Patch release to fix broken gemspec file.  Sorry folks!

1.0.0 2013-05-13

New Features/Changes

* Dropping support for Ruby 1.8.x; Only 1.9.x and beyond will be supported going forward.
* Now supporting and testing against ruby 2.0.x.
* Adds support for AR 4.0 by using `begin_transaction` (David Chelimsky and Steve Madsen)
* Adds Rails 4 support for SQLite3Adapter
* Suppport for Moped when used without Mongoid (Cyprian Kowalczyk)
* Redis & Ohm support (Hengbin Qiu, James Conroy-Finn)

* CI Improvements (Jan Vlnas, Murahashi Sanemat Kenichi, Samer Masry, Jordan Hollinger)
* README/Documentation improvements (Marcelo Cajueiro, Donald Ball, TJ Chambers, Nick Huanca, Justin Edwards, Ryota Arai)

Bug Fixes

* Fixes transaction errors when using `after_commit` hooks in AR.
* Fixes truncation error with SQLite (Daniel White)
* Fixes `pre_count` logic in AR Postgres. (Jordan Hollinger)
* Sequel fix to normalize all table names to strings. (Lauri Peltola)
* #clean_with now works with multiple connections. (John Ferlito)
* Always start a AR transaction to prevent nil errors in AR when rolling back (John Hampton, M.Shibuya)

0.9.1 2012-10-11

(0.9.0 was released first but was yanked due to bad gemspec)

New Features

* New options for AR :truncation for speed.  See README for details. (Stanislaw Pankevich)
* view caching works with the schema_plus gem loaded
  * ActiveRecord::ConnectionAdapters::AbstractAdapter#views was renamed to an internal name
* ActiveRecord truncation strategy caches the list of tables #130 (Petteri Räty)
* Caches AR DB connections which speeds up cleaning with multiple DBs and allows for transation strategy.
* MongoDB :truncation strategy (wihtout use of additional library like Mogoid). #138 (Christopher Darrell & Richard Luther/@sidereel)
* Add Sequel support for multiple migration storage names in #148 (Jack Chu)
* Multiple database support for Mongoid 3 #149 (Luke Francl)

Bug Fixes

* :deletion for AR Postgres in JRuby now works #140 (Heiko Seebach)
* Rescue LoadError when AR adapters not available. #145 (Garrow Bedrossian)
* Fixes DatabaseCleaner::[] to cache cleaners.

0.8.0 2012-06-02

* Faster truncation strategy for ActiveRecord with MySQL or PostgreSQL
* Upgrade to RSpec 2
* Support for Mongoid 3/Moped (Andrew Bennett)
* Postgres Adapter no longer generates invalid SQL when no tables provided. (Michael-Keith Bernard)

0.7.2 2012-03-21

* Proper Mysql2Adapter superclass fix. (Jonathan Viney)
* Sequel::Transaction works with latest Sequel. (David Barri)
* Documenation fixes/improvements. (David Barri, Ben Mabey, Kevin Moore)

0.7.1 2012-01-15

New Features

* Support for Rails 3.2. (David Demaree)

Bugfixes

* Truncation resets the id count on SQLite. (Jordan Hollinger)
* AR delete strategy now disables referential integrity. (Ben Mabey)
* Fixes Postgres adapter for JRuby. (Dmytrii Nagirniak, Uģis Ozols)
* Documenation fixes. (Josh Rendek, Joshua Flanagan)
* Fixes bad error message when no database is specified for AR. (issue #72, Ben Mabey)

0.7.0 2011-11-12

New Features

* Sequel Support (Corin Langosch)
* Updates DataMapper strategies to work with DataMapper 1.1 (Xavier Shay and Anthony Williams)
* for AR and PSQL, truncate all tables with one command, improving performance due to avoiding cascades (Leonid Shevtsov)

Bugfixes

* Avoids trying to load the ':default' ActiveRecord config. #72 (Ben Mabey)

0.6.7 2011-04-21

Bugfixes

* Explicity require ERB. (Vít Ondruch)
* Cache DB connections, fixes referential integrity bug when using multiple DBs. (John Ferlito)

0.6.6 2011-03-16

Bugfixes

* Don't modify the array passed in with the :except key. (Eric Wollesen)
* Fixes version checking for postgresql. (Greg Barnett)

0.6.5 2011-03-08

Bugfixes

* When truncating in postgresql (>= 8.4) sequences are now reset. (Greg Barnett)
* Fixes the MongoDB truncation so non system collections starting with 'system' are not excluded for truncation. (Dmitry Naumov)

0.6.4 2011-02-21

Bugfixes

* Avoids trying to drop views in Postgres. (Bernerd Schaefer)

0.6.3 2011-02-09

New Features

* Configurable logger to aid in debugging database cleaner. (Marty Haught)

0.6.2 2011-02-04

New Features

* Support IBM_DB Adapter for table truncation. This is for DB2 >= 9.7 (GH-39 Samer Abukhait)

Bugfixes

* Reversed GH-41 after larger community discussion. Mongo indexes are no longer dropped. (Ben Mabey)
* Truncation strategy works on SqlServer tables with FKs. (GH-33, Hugo Freire)

0.6.1 2011-01-27

New Features

* Default strategies for all ORM libs are defined. (GH-36, GH-38 Prem Sichanugrist)
* Add a NullStrategy. (GH-6 Ben Mabey)

Bugfixes

* Mongo colletion indexes are dropped for collections being removed. (GH-41 Ben Mabey)
* Exclude database views from tables_to_truncate, if the connection adapter
  supports reading from the ANSI standard information_schema views. (GH-25 Samer Abukhait)
* ORM types can be specified in string format and not mysteriously blowup. (GH-26 Ben Mabey)
* Do not remove MongoDB reserved system collections. (GH-24 Ches Martin)

0.6.0 2010-10-25 - The Multi-ORM/Connection Release

This release has the often asked for functionality of being able to clean multiple databases within the same project. This involves being able to clean databases managed by the same ORM (i.e. different connections) and also being able to clean databases managed by distinct ORMs. So, for example you can now use DatabaseCleaner on a project that has ActiveRecord and Mongoid to help ensure all DBs all in a clean state. Please see the README for more information. The old API has been preserved so this release is backwards compatible.

This release is a result of Jon Rowe’s hard work. Many thanks to Jon for all of the hours and effort he put into making this feature request a reality.

New Features

* Ability to clean multiple database connections managed by the same ORM. (Jon Rowe)
* Ability to clean multiple DBs managed by different ORMs in same project. (Jon Rowe)
* Allows for the ActiveRecord config file (database.yml) to contain ERB and process it. (Fletcher Nichol)
* Mysql2Adapter support. (Kamal Fariz Mahyuddin and John Ferlito)
* Deletion strategy for ActiveRecord (Mikl Kurkov)

Bugfixes

* Updates the DataMapper truncation strategy to version 0.10.3. (Robert Rouse)
* Addresses Ruby 1.9 and 1.8 differences causing a bug in the AR PostgreSQLAdapter truncation strategy. (GH-14, James B. Byrne)
* Fixes syntax error that MySQL was throwing during DataMapper truncation. (Blake Gentry)
* Fixes truncation for PostgreSQL (Bodaniel Jeanes and Gabriel Sobrinho)
* Workaround for superclass mismatches for the ActiveRecord-jdbc-adapter (Toms Mikoss)

0.5.2

Bugfixes

* Removes extraneous puts call from configuration.rb.  (Ben Mabey)

0.5.1 - The Mongoid Release

This release also attempts to fix AR for Rails 3 support. I have seen mixed reviews on this. Some people claim the fixes allow for use in Rails3 while others have not had good luck with it. I plan on reworking the way AR support is added so that it is more friendly with how Rails 3 uses autoload.

New features

* Clean and clean_with methods are now aliased to clean! and clean_with!. (Ben Mabey)
* Mongoid Support! (Sidney Burks)

Bugfixes

* Check PostgreSQL version >= 8.2 before using TRUNCATE CASCADE (James B. Byrne)
* Correct superclass is used in ActiveRecord connection adapters. (johnathan, Aslak Hellesoy, Ben Mabey)

0.5.0 2010-02-22 - The CouchPotato Release

New features

* Basic truncation support for CouchPotato / CouchDB. (Martin Rehfeld)
* SQLite3 on JRuby will fall back to delete if truncate doesn't work. (Darrin Holst)
* JDBC is used for ActiveRecord automaticaly when JRuby is detected. (Darrin Holst)

Bufixes

* MongoMapper truncation strategy now works with :only and :except options. (Ben Mabey)

0.4.3 2010-01-17

New features

* Truncation for ActiveRecord oracle_enhanced adapter. (Edgars Beigarts)

0.4.2 2010-01-12

Bufixes

* Datamapper truncation now uses 'select' instead of deprecated the 'query' method. (Steve Tooke)

0.4.1 2010-01-07

Bufixes

* Postgres tables with FKs now truncate (added TRUNCADE CASCADE) using Datamapper. (Ben Mabey)

0.4.0 2009-12-23 (The MongoMapper Edition)

New features

* MongoMapper support for the truncation strategy. (Aubrey Holland)

0.3.0 2009-12-20

New features

* DataMapper 0.10.0 Compatible. (Martin Gamsjaeger)

Bufixes

* Postgres tables with FKs now truncate (added TRUNCADE CASCADE). (Vika - yozhyk on github)

0.2.3 2009-05-30

New features

* Support for SQL Server truncation (Adam Meehan)

0.2.2 2009-05-08

Bufixes

* Added proper gemspec description and summary. (Ben Mabey, thanks to Martin Gamsjaeger)

New features

0.2.1 2009-05-08

Bufixes

* Removed extraneous TruncationBase class definition. (Ben Mabey)

0.2.0 2009-05-08 - The Datamapper Release

New features

* DataMapper strategies (Martin Gamsjaeger)
  * Transaction
  * Truncation - working SQLite3, MySQL adapters. Experimental Postgres adapter (not tested).

0.1.3 2009-04-30

New features

* PostgresSQLAdapter for AR to support the truncation strategy. (Alberto Perdomo)

Bufixes

* Added missing quotes around table names in truncation calls. (Michael MacDonald)

0.1.2 2009-03-05

New features

* JDBC Adapter to enable AR truncation strategy to work. (Kamal Fariz Mahyuddin)

0.1.1 2009-03-04 - Initial Release (Ben Mabey)

* Basic infrastructure
* Features, RSpec code examples
* ActiveRecord strategies
  * Truncation - with MySQL, and SQLite3 adapters.
  * Transaction - wrap your modifications and roll them back.