Project

General

Profile

Actions

Refactor #13409

closed

Remove maintain_test_schema! Rails initializer

Added by Dominic Cleal over 8 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Rails
Target version:
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

The config/initializers/0_maintain_test_schema.rb initializer added in #7230 can potentially be removed with some further fixes.

It exists to initialise the test database before the main Rails app and models are initialised, fixing a couple of bugs where loading the model requires the table to already be available. If the table isn't available then validators etc. aren't set up correctly and tests may fail. Removing the initialiser and the test DB, then running rake test shows the issue. More info in #12873.

#13039 fixed one issue, but I think two further fixes are required:

1) validates_lengths_from_database needs to avoid reading DB information to set up its validators. https://github.com/rubiety/validates_lengths_from_database/pull/12 fixes this.

2) Our own validate_inclusion_in_families validator should not check for the attribute's existence - this check can probably be removed.


Related issues 4 (0 open4 closed)

Related to Foreman - Feature #7230: Upgrade Ruby on Rails to 4.1ClosedDaniel Lobato Garcia08/22/2014Actions
Related to Foreman - Refactor #13039: Remove DB queries from class of UnattendedControllerClosedDominic Cleal01/07/2016Actions
Related to Foreman - Feature #12873: Update Rails to 4.1.latestClosedDominic Cleal12/18/2015Actions
Blocked by Foreman - Bug #13574: Plugins with Setting subclasses raise super: no superclass method `load_defaults' errorClosedDominic Cleal02/05/2016Actions
Actions

Also available in: Atom PDF