BigW Consortium Gitlab

Skip to content
  • Stan Hu's avatar
    575dced5
    If migrations are pending, make CurrentSettings use existing values and... · 575dced5
    Stan Hu authored
    If migrations are pending, make CurrentSettings use existing values and populate missing columns with defaults
    
    master was failing because `ApplicationSetting.create_from_defaults` attempted
    to write to a column that did not exist in the database. This occurred in a
    `rake db:migrate` task, which was unable to perform the migration that would
    have added the missing column in the first place.
    
    In 9.3 RC2, we also had a bug where password sign-ins were disabled because
    there were many pending migrations. The problem occurred because
    `fake_application_settings` was being returned with an OpenStruct that did not
    include the predicate method `signup_enabled?`. As a result, the value would
    erroneously return `nil` instead of `true`. This commit uses the values of the
    defaults to mimic this behavior.
    
    This commit also refactors some of the logic to be clearer.
    575dced5
    If migrations are pending, make CurrentSettings use existing values and...
    Stan Hu authored
    If migrations are pending, make CurrentSettings use existing values and populate missing columns with defaults
    
    master was failing because `ApplicationSetting.create_from_defaults` attempted
    to write to a column that did not exist in the database. This occurred in a
    `rake db:migrate` task, which was unable to perform the migration that would
    have added the missing column in the first place.
    
    In 9.3 RC2, we also had a bug where password sign-ins were disabled because
    there were many pending migrations. The problem occurred because
    `fake_application_settings` was being returned with an OpenStruct that did not
    include the predicate method `signup_enabled?`. As a result, the value would
    erroneously return `nil` instead of `true`. This commit uses the values of the
    defaults to mimic this behavior.
    
    This commit also refactors some of the logic to be clearer.
Loading