Merge branch 'explorer'
[arvados.git] / services / api / db / migrate / 20130118002239_rename_metadata_attributes.rb
1 class RenameMetadataAttributes < ActiveRecord::Migration
2   def up
3     rename_column :metadata, :target_kind, :tail_kind
4     rename_column :metadata, :target_uuid, :tail
5     rename_column :metadata, :value, :head
6     rename_column :metadata, :key, :name
7     add_column :metadata, :head_kind, :string
8     add_index :metadata, :head
9     add_index :metadata, :head_kind
10     add_index :metadata, :tail
11     add_index :metadata, :tail_kind
12     Metadatum.where('head like ?', 'orvos#%').each do |m|
13       kind_uuid = m.head.match /^(orvos\#.*)\#([-0-9a-z]+)$/
14       if kind_uuid
15         m.update_attributes(head_kind: kind_uuid[1],
16                             head: kind_uuid[2])
17       end
18     end
19   end
20
21   def down
22     Metadatum.where('head_kind is not null and head_kind <> ? and head is not null', '').each do |m|
23       m.update_attributes(head: m.head_kind + '#' + m.head)
24     end
25     remove_index :metadata, :tail_kind
26     remove_index :metadata, :tail
27     remove_index :metadata, :head_kind
28     remove_index :metadata, :head
29     rename_column :metadata, :name, :key
30     remove_column :metadata, :head_kind
31     rename_column :metadata, :head, :value
32     rename_column :metadata, :tail, :target_uuid
33     rename_column :metadata, :tail_kind, :target_kind
34   end
35 end