From 735c2d84eb8d5e2596eab2b7bca592139bad1e8e Mon Sep 17 00:00:00 2001 From: Ahmad Farhat Date: Mon, 26 Jun 2023 11:38:45 -0400 Subject: [PATCH] Fixed migrations not migrating external accounts (#5291) --- lib/tasks/migrations/migrations.rake | 51 ++++++++++++++-------------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/lib/tasks/migrations/migrations.rake b/lib/tasks/migrations/migrations.rake index bdb8217f1f..2b18257d0d 100755 --- a/lib/tasks/migrations/migrations.rake +++ b/lib/tasks/migrations/migrations.rake @@ -12,16 +12,15 @@ namespace :migrations do desc "Migrates v2 resources to v3" task :roles, [:provider] => :environment do |_task, args| - args.with_defaults(provider: "greenlight") has_encountred_issue = 0 - Role.unscoped - .where(provider: args[:provider]) - .select(:id, :name, :provider) - .includes(:role_permissions) - .where.not(name: COMMON[:filtered_roles]) - .find_each(batch_size: COMMON[:batch_size]) do |r| + roles = Role.unscoped + roles = roles.where(provider: args[:provider]) if args[:provider].present? + roles = roles.select(:id, :name, :provider) + .includes(:role_permissions) + .where.not(name: COMMON[:filtered_roles]) + roles.find_each(batch_size: COMMON[:batch_size]) do |r| # RolePermissions role_permissions_hash = r.role_permissions.pluck(:name, :value).to_h @@ -65,16 +64,16 @@ namespace :migrations do end task :users, [:provider, :start, :stop] => :environment do |_task, args| - args.with_defaults(provider: "greenlight") start, stop = range(args) has_encountred_issue = 0 - User.unscoped - .where(provider: args[:provider]) - .select(:id, :uid, :name, :email, :social_uid, :language, :role_id, :created_at) - .includes(:role) - .where.not(roles: { name: COMMON[:filtered_user_roles] }, deleted: true) - .find_each(start: start, finish: stop, batch_size: COMMON[:batch_size]) do |u| + user = User.unscoped + user = user.where(provider: args[:provider]) if args[:provider].present? + user = user.select(:id, :uid, :name, :email, :social_uid, :language, :role_id, :created_at) + .includes(:role) + .where.not(roles: { name: COMMON[:filtered_user_roles] }, deleted: true) + + user.find_each(start: start, finish: stop, batch_size: COMMON[:batch_size]) do |u| role_name = infer_role_name(u.role.name) params = { user: { name: u.name, @@ -115,22 +114,22 @@ namespace :migrations do end task :rooms, [:provider, :start, :stop] => :environment do |_task, args| - args.with_defaults(provider: "greenlight") start, stop = range(args) has_encountred_issue = 0 filtered_roles_ids = Role.unscoped - .where(provider: args[:provider]) - .select(:id, :name) - .where(name: COMMON[:filtered_user_roles]) - .pluck(:id) - - Room.unscoped - .select(:id, :uid, :name, :bbb_id, :last_session, :user_id, :room_settings) - .includes(:owner) - .where('users.provider': args[:provider]) - .where.not(users: { role_id: filtered_roles_ids, deleted: true }, deleted: true) - .find_each(start: start, finish: stop, batch_size: COMMON[:batch_size]) do |r| + filtered_roles_ids = filtered_roles_ids.where(provider: args[:provider]) if args[:provider].present? + filtered_roles_ids = filtered_roles_ids.select(:id, :name) + .where(name: COMMON[:filtered_user_roles]) + .pluck(:id) + + rooms = Room.unscoped + .select(:id, :uid, :name, :bbb_id, :last_session, :user_id, :room_settings) + .includes(:owner) + rooms = rooms.where('users.provider': args[:provider]) if args[:provider].present? + rooms = rooms.where.not(users: { role_id: filtered_roles_ids, deleted: true }, deleted: true) + + rooms.find_each(start: start, finish: stop, batch_size: COMMON[:batch_size]) do |r| # RoomSettings parsed_room_settings = JSON.parse(r.room_settings) # Returns nil if the RoomSetting value is the same as the corresponding default value in V3