DatabaseCleaner/database_cleaner · error · ArgumentError

You must provide a strategy object that supports non default

Error message

You must provide a strategy object that supports non default databases when you specify a database

What it means

Error "You must provide a strategy object that supports non default databases when you specify a database" thrown in DatabaseCleaner/database_cleaner.

Source

Thrown at lib/database_cleaner/cleaner.rb:79

    def clean_with(*args)
      strategy = create_strategy(*args)
      set_strategy_db strategy, db
      strategy.clean
      strategy
    end

    private

    def strategy_db=(desired_db)
      set_strategy_db(strategy, desired_db)
    end

    def set_strategy_db(strategy, desired_db)
      if strategy.respond_to? :db=
        strategy.db = desired_db
      elsif desired_db != :default
        raise ArgumentError, "You must provide a strategy object that supports non default databases when you specify a database"
      end
    end

    def create_strategy(*args)
      strategy, *strategy_args = args
      orm_strategy(strategy).new(*strategy_args)
    end

    def orm_strategy(strategy)
      strategy_module_name = camelize(strategy)
      orm_module.const_get(strategy_module_name)
    rescue NameError
      available_strategies = self.class.available_strategies(orm_module)
      raise UnknownStrategySpecified, "The '#{strategy}' strategy does not exist for the #{orm} ORM!  Available strategies: #{available_strategies.join(', ')}"
    end

    def orm_module
      orm_module_name = camelize(orm)

View on GitHub (pinned to 09b47d03cc)

When it happens

Trigger: Thrown at lib/database_cleaner/cleaner.rb:79 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of DatabaseCleaner/database_cleaner@09b47d03cc (2026-08-23). Data as JSON: /api/errors/7cfead00981fbdc8. Report an issue: GitHub.