]> git.openstreetmap.org Git - rails.git/blob - db/migrate/039_add_more_controls_to_gpx_files.rb
Merge branch 'master' into openid
[rails.git] / db / migrate / 039_add_more_controls_to_gpx_files.rb
1 require 'lib/migrate'
2
3 class AddMoreControlsToGpxFiles < ActiveRecord::Migration
4   def self.up
5     create_enumeration :gpx_visibility_enum, ["private", "public", "trackable", "identifiable"]
6     add_column :gpx_files, :visibility, :gpx_visibility_enum, :default => "public", :null => false
7     Trace.update_all("visibility = 'private'", { :public => false })
8     add_index :gpx_files, [:visible, :visibility], :name => "gpx_files_visible_visibility_idx"
9     remove_index :gpx_files, :name => "gpx_files_visible_public_idx"
10     remove_column :gpx_files, :public
11   end
12
13   def self.down
14     add_column :gpx_files, :public, :boolean, :default => true, :null => false
15     Trace.update_all("public = false", { :visibility => "private" })
16     add_index :gpx_files, [:visible, :public], :name => "gpx_files_visible_public_idx"
17     remove_index :gpx_files, :name => "gpx_files_visible_visibility_idx"
18     remove_column :gpx_files, :visibility
19     drop_enumeration :gpx_visibility_enum
20   end
21 end