11168: Double-decode serialized fields if database was mangled by downgraded API...
[arvados.git] / services / api / db / migrate / 20140325175653_remove_kind_columns.rb
1 class RemoveKindColumns < ActiveRecord::Migration
2   include CurrentApiClient
3
4   def up
5     remove_column :links, :head_kind
6     remove_column :links, :tail_kind
7     remove_column :logs, :object_kind
8   end
9
10   def down
11     add_column :links, :head_kind, :string
12     add_column :links, :tail_kind, :string
13     add_column :logs, :object_kind, :string
14
15     act_as_system_user do
16       Link.all.each do |l|
17         l.head_kind = ArvadosModel::resource_class_for_uuid(l.head_uuid).kind if l.head_uuid
18         l.tail_kind = ArvadosModel::resource_class_for_uuid(l.tail_uuid).kind if l.tail_uuid
19         l.save
20       end
21       Log.all.each do |l|
22         l.object_kind = ArvadosModel::resource_class_for_uuid(l.object_uuid).kind if l.object_uuid
23         l.save
24       end
25     end
26   end
27 end