Skip to content

DBs not cleaned when using multiple DBs after upgrade to 2.x.x from 1.8.0 #18

Open

Description

@PetrKaleta

For some reason database_cleaner-sequel stopped working after migrating to v 2.0.0.
ENV: ruby 3.1.2, sequel 5.58.0, minitest 5.16.2

Working configuration for 1.8.0 was:

    before :each do
      DatabaseCleaner[:sequel, connection: DEFAULT_DB].start
      DatabaseCleaner[:sequel, connection: SHARED_DB].start
    end

    after :each do
      DatabaseCleaner[:sequel, connection: DEFAULT_DB].clean
      DatabaseCleaner[:sequel, connection: SHARED_DB].clean
    end

Current configuration for 2.0.0 is:

    before :each do
      DatabaseCleaner[:sequel, db: DEFAULT_DB].start
      DatabaseCleaner[:sequel, db: SHARED_DB].start
    end

    after :each do
      DatabaseCleaner[:sequel, db: DEFAULT_DB].clean
      DatabaseCleaner[:sequel, db: SHARED_DB].clean
    end

Just to be clear, it's not raising any error, but basically databases are not cleaned at all...

Activity

  1. megatux commented on Nov 7, 2021

    @megatux

    Same here, stopped working. Pasting trace:

    line 20 of test_helper.rb is this:

    DatabaseCleaner.clean_with :truncation

    10: from /run/media/megatux/6967f1a1-b777-4681-b35f-261f322cd933/code/newsan/newsan_tv_r1/test/test_helper.rb:20:in `<top (required)>'
    	 9: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/2.7.0/forwardable.rb:235:in `clean_with'
    	 8: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:40:in `clean_with'
    	 7: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:40:in `each'
    	 6: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:40:in `block in clean_with'
    	 5: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaner.rb:65:in `clean_with'
    	 4: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-active_record-2.0.1/lib/database_cleaner/active_record/truncation.rb:21:in `clean'
    	 3: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-active_record-2.0.1/lib/database_cleaner/active_record/truncation.rb:33:in `connection'
    	 2: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/activerecord-6.1.4.1/lib/active_record/connection_handling.rb:283:in `connection'
    	 1: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/activerecord-6.1.4.1/lib/active_record/connection_handling.rb:327:in `retrieve_connection'
    /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/activerecord-6.1.4.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:1125:in `retrieve_connection': No connection pool for 'ActiveRecord::Base' found. (ActiveRecord::ConnectionNotEstablished)
    
  2. PetrKaleta commented on Jun 23, 2022

    @PetrKaleta
    Author

    @etagwerker are you able to reproduce this issue?

  3. changed the title [-]Upgrade to 2.0.0[/-] [+]DB not cleaned after upgrade to 2.0.2 from 1.x.x[/+] on Jun 23, 2022
  4. PetrKaleta commented on Jul 27, 2022

    @PetrKaleta
    Author

    Same here, stopped working. Pasting trace:

    line 20 of test_helper.rb is this:

    DatabaseCleaner.clean_with :truncation

    10: from /run/media/megatux/6967f1a1-b777-4681-b35f-261f322cd933/code/newsan/newsan_tv_r1/test/test_helper.rb:20:in `<top (required)>'
    	 9: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/2.7.0/forwardable.rb:235:in `clean_with'
    	 8: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:40:in `clean_with'
    	 7: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:40:in `each'
    	 6: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaners.rb:40:in `block in clean_with'
    	 5: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-core-2.0.1/lib/database_cleaner/cleaner.rb:65:in `clean_with'
    	 4: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-active_record-2.0.1/lib/database_cleaner/active_record/truncation.rb:21:in `clean'
    	 3: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/database_cleaner-active_record-2.0.1/lib/database_cleaner/active_record/truncation.rb:33:in `connection'
    	 2: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/activerecord-6.1.4.1/lib/active_record/connection_handling.rb:283:in `connection'
    	 1: from /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/activerecord-6.1.4.1/lib/active_record/connection_handling.rb:327:in `retrieve_connection'
    /home/megatux/.asdf/installs/ruby/2.7.4/lib/ruby/gems/2.7.0/gems/activerecord-6.1.4.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:1125:in `retrieve_connection': No connection pool for 'ActiveRecord::Base' found. (ActiveRecord::ConnectionNotEstablished)
    

    This looks like a different issue. In my case it is not raising any error...

  5. changed the title [-]DB not cleaned after upgrade to 2.0.2 from 1.x.x[/-] [+]DBs not cleaned when using multiple DBs after upgrade to 2.x.x from 1.8.0[/+] on Jul 27, 2022
  6. PetrKaleta commented on Dec 29, 2022

    @PetrKaleta
    Author

    Hello,
    I just came back to this issue and tried to debug it. And I've found whats wrong...

    When you use following example

    before :each do
      DatabaseCleaner[:sequel, db: DEFAULT_DB].start
      DatabaseCleaner[:sequel, db: SHARED_DB].start
    end
    
    after :each do
      DatabaseCleaner[:sequel, db: DEFAULT_DB].clean
      DatabaseCleaner[:sequel, db: SHARED_DB].clean
    end

    Then database cleaner is not using DatabaseCleaner::Sequel::Transaction strategy (that should be default for Sequel), but instead of it uses DatabaseCleaner::NullStrategy. So setting strategy manually to transaction fixes the issue..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions