54124fc608
In Arel 7.0.0 (Arel 7.1.4 is used in Rails 5.0) the `engine` parameter of `Arel::UpdateManager#initializer` was removed. This commit makes the gitlab database helpers work both in rails 4 and rails 5. Fixes errors like this one: ``` 1) Gitlab::Database::MigrationHelpers#update_column_in_batches when running outside of a transaction updates all the rows in a table Failure/Error: update_arel = Arel::UpdateManager.new(ActiveRecord::Base) .table(table) .set([[table[column], value]]) .where(table[:id].gteq(start_id)) ArgumentError: wrong number of arguments (given 1, expected 0) # ./lib/gitlab/database/migration_helpers.rb:317:in `new' # ./lib/gitlab/database/migration_helpers.rb:317:in `block in update_column_in_batches' # ./lib/gitlab/database/migration_helpers.rb:307:in `loop' # ./lib/gitlab/database/migration_helpers.rb:307:in `update_column_in_batches' # ./spec/lib/gitlab/database/migration_helpers_spec.rb:367:in `block (4 levels) in <top (required)>' ```
18 lines
480 B
Ruby
18 lines
480 B
Ruby
module Gitlab
|
|
module Database
|
|
module ArelMethods
|
|
private
|
|
|
|
# In Arel 7.0.0 (Arel 7.1.4 is used in Rails 5.0) the `engine` parameter of `Arel::UpdateManager#initializer`
|
|
# was removed.
|
|
# Remove this file and inline this method when removing rails5? code.
|
|
def arel_update_manager
|
|
if Gitlab.rails5?
|
|
Arel::UpdateManager.new
|
|
else
|
|
Arel::UpdateManager.new(ActiveRecord::Base)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|