Skip to content
Snippets Groups Projects
Commit 66489481 authored by Israel Barreto Sant'Anna's avatar Israel Barreto Sant'Anna
Browse files

Fixed JoinTableLanguageLearningObject migration

parent 31eee1ca
No related branches found
No related tags found
No related merge requests found
......@@ -6,11 +6,58 @@ class CreateJoinTableLanguageLearningObject < ActiveRecord::Migration[5.0]
# t.index [:learning_object_id, :language_id]
end
LearningObject.with_deleted.all.each do |lo|
reversible do |migration|
start = 1
finish = 999
batch_size = 1000
last_id = LearningObject.with_deleted.last.id
migration.up do
loop do
begin
LearningObject.with_deleted.find_each(start: start, finish: finish) do |lo|
if (lo.language_id)
lo.update_attributes(language_ids: lo.language_id)
end
end
rescue PG::ConnectionBad => e
logger.warn 'Database error, going to sleep'
logger.error e
# Sleeps for a while to wait database's recovery
sleep(10.seconds)
# Goes to next iteration to retry
next
else
start += batch_size - 1
finish += batch_size
break if start >= last_id
end
end
end
migration.down do
loop do
begin
LearningObject.with_deleted.find_each(start: start, finish: start) do |lo|
if (lo.language_id)
lo.update_attributes(language_id: lo.language_ids.first)
end
end
rescue PG::ConnectionBad => e
logger.warn 'Database error, going to sleep'
logger.error e
# Sleeps for a while to wait database's recovery
sleep(10.seconds)
# Goes to next iteration to retry
next
else
start += batch_size - 1
finish += batch_size
break if start >= last_id
end
end
end
end
remove_column :learning_objects, :language_id
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment