1. 14 12月, 2017 1 次提交
  2. 20 6月, 2017 1 次提交
    • S
      If migrations are pending, make CurrentSettings use existing values and... · 575dced5
      Stan Hu 提交于
      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